2015-05-07 9 views
6

principale App Itinerari:Come non sovraccaricare i percorsi principali con i percorsi dei pacchetti?

Route::get('/login', [ 
    'as' => 'user.login', 
    'uses' => '[email protected]' 
]; 
Route::get('/logout', [ 
    'as' => 'user.logout', 
    'uses' => '[email protected]' 
]; 
Route::get('/admin', [ 
    'as' => 'admin.index', 
    'uses' => '[email protected]' 
]; 

Ho un pacchetto (fornitore) (esempio: Metrakit/mypackage) con un file routes.php. In questo file ho un percorso:

Route::get('/{slug}', [ 
    'as' => 'item.show', 
    'uses' => '[email protected]' 
]; 

Questo percorso sovraccarica tutti i miei percorsi principali! I miei percorsi come "/ login", "/ logout", "/ bob", ... sono tutti reindirizzati al mio controller ItemController.

Io non voglio avere un percorso come

Route::get('/item/{slug}', array('as' => 'item.show', 'uses' => '[email protected]'); 

I pensa, devo fare uno schema di rotta in questo modo:

Route::pattern('slug', '^((?!(login|logout|admin)).)*$'); 

ma sembra un po 'sporca e non è dinamico.

Quindi sto cercando una soluzione migliore.

+0

Il problema è l'ordine in cui vengono caricati i percorsi. Probabilmente stai usando il caricamento dei tuoi percorsi personalizzati nel metodo del pacchetto 'boot()'. Questo carica i percorsi dei pacchetti prima delle rotte normali. Posizionare una rotta di catchall in alto farà quello che stai vedendo in questo momento. Immagino che l'opzione migliore sarebbe non caricare automaticamente i percorsi dal pacchetto nel metodo di avvio, ma caricarli manualmente nel filtro precedente (dopo aver caricato i percorsi regolari). – Robert

risposta

0

Sembra che tu abbia fatto nel modo giusto. Un problema che potrebbe accadere è quando aggiungi una nuova rotta nel tuo file route.php, dovresti aggiungere anche il tuo percorso. Tuttavia, potrebbe essere risolto creando una variabile globale per impostarla solo una volta.

+0

Ho scelto di usare il modello del percorso – Metra

0

Potrebbe essere semplice caricare il fornitore di servizi del fornitore in ritardo nel file app.php. I percorsi vengono elaborati nella sequenza in cui sono registrati.

Problemi correlati