Qual è il miglior luogo concettuale in cui inserire la logica dei dati di menu in Laravel. Se utilizzo Menu bundle dove metterlo. In Base_Controller
creare una funzione aggiuntiva o qualcosa di diverso?Dove posizionare la logica di menu in Laravel?
risposta
Nota: questa risposta è stata scritta per laravel 3 e potrebbe o potrebbe non funzionare con il più recente laravel 4
mio modo preferito di creazione di menu dinamico si ottiene separando la menu parte dal layout principale e inietta i dati del menu tramite Composer di Laravel (non confondilo con Composer PHP package manager, sono cose diverse)
<!-- layouts/default.blade.php -->
<div id="header">Title</div>
<div id="menu">
@render('parts.menu')
</div>
<div id="content"></div>
<div id="footer"></div>
<!-- parts/menu.blade.php -->
<ul>
@foreach($menuitems as $menuitem)
<li>{{ $menuitem->title }}</li>
@endforeach
</ul>
Infine si può iniettare la variabile tramite compositore.
<?php
// application/routes.php
View::composer('parts.menu', function($view){
$view->with('menuitems', Menu::all());
});
questo modo ogni parts/menu.blade.php
è chiamato, compositore intercetterà la vista e iniettare con $menuitems
variabile. E 'stesso che usare with
su return View::make('blahblah')->with('menuitems', Menu::all())
Speranza che aiuta :)
Edit: Se non piace avere logiche di routes.php
si può mettere in start.php
e prendere in considerazione modo Jason Lewis' di dividere lo start.php
in file separati.
Creare una directory in application
denominata start
e riempirla con alcuni file.
+ application [DIR]
\-> + start [DIR]
|-> autoloading.php
|-> composers.php
|-> filters.php
\-> validation.php
Quindi aggiungere queste righe di codice nella parte finale del tuo application/start.php
require __DIR__ . DS . 'start' . DS . 'autoloading.php';
require __DIR__ . DS . 'start' . DS . 'filters.php';
require __DIR__ . DS . 'start' . DS . 'composers.php';
require __DIR__ . DS . 'start' . DS . 'validation.php';
Hai l'idea. Metti le funzioni del compositore in compositers.php.
leggere l'intero articolo qui: http://jasonlewis.me/article/laravel-keeping-things-organized
Penso che tu abbia unito due risposte in una! – Orbitum
Nelle nuove versioni, invece di @render ('parts.menu') usa @include ('parts.menu') – hugronaphor
@CornelAndreev: qual è la differenza tra render & include? – akhyar
Per quanto riguarda il recupero dei dati in un view composer e l'utilizzo di un HTML macro per la generazione dell'HTML?
Laravel ha spesso molti modi di fare le cose. Detto questo, a volte può essere un po 'travolgente e confuso.
Nella documentazione su view composer si dice che _ "I compositori sono tipicamente definiti in application/routes.php" _. Uso le rotte solo per il routing non per la logica, esiste una soluzione senza percorsi? – Orbitum
Non hanno niente a che fare con i percorsi, puoi metterli dove vuoi - di solito in un file extra di helpers. – Franz
Ok, e dove mettere questa logica (compositore)? Nella funzione Base_Controller? Questa è la mia domanda principale. Capisco che ci sono molte cose flessibili in Laravel, ma non so dove metterle. – Orbitum
- 1. Dove posizionare la logica aziendale in Symfony2?
- 2. dove posizionare la logica specifica delle risorse
- 3. ServiceStack, dove posizionare la logica aziendale?
- 4. Dove posizionare la logica aziendale è il livello di modello di Symfony 2?
- 5. CakePHP - dove mettere la logica di servizio
- 6. Dove inserire la logica di reindirizzamento in Drupal?
- 7. SQL JOIN dove posizionare la condizione WHERE?
- 8. Dove dovrebbe andare la logica di calcolo in un'app Rails?
- 9. Dove entra in gioco la logica di business?
- 10. dove mettere la logica di validazione? In servizio o deposito?
- 11. Dove posizionare la struttura dell'entità nella nostra soluzione?
- 12. Dove dovrei posizionare lo scriptmanager
- 13. Dove posizionare oggetti interattivi in JavaScript?
- 14. dove posizionare DTD all'interno di un pacchetto
- 15. laravel Menu sé ricorsione
- 16. Dove posizionare il progetto di prova dell'unità
- 17. Come posizionare le voci di menu in Navigation View?
- 18. Laravel: ordina da dove in
- 19. Posizionare una linea divisoria in un menu in WPF
- 20. Dove posizionare un modulo di utilità condiviso in OCaml?
- 21. Dove posizionare il file di configurazione della sicurezza in WAR?
- 22. applicazione web - dove posizionare il file hibernate.cfg.xml?
- 23. Dove posizionare il '&' in un parametro in una funzione?
- 24. Laravel dove() vs whereLoose() metodi
- 25. Laravel 5 Eloquent dove e in Clausole
- 26. Dove dovrebbe andare la logica di autenticazione manuale in spring security - Livello di servizio o livello di presentazione?
- 27. Dove posizionare una classe PHP personalizzata in CakePHP 3?
- 28. css3pie in MVC, dove posizionare il file pie.htc?
- 29. Dove posizionare il file dei criteri dell'applet java?
- 30. Dove devo conservare JS in Laravel 5?
ciò che è "la logica di menu"? –
Ad esempio ottenere gli elementi del menu dal DB e aggiungere alla memoria Menu (pacchetto), per il rendering nelle viste. – Orbitum