2014-04-05 9 views
6

ho bisogno di costruire gli URL come questo:Passo molti parametri opzionali verso rotta in laravel 4

http://www.example.com/param1/param2/param3/.../paramN 

in una pagina di ricerca, ricerche degli utenti da eventuali opzioni in modo da fare un URL simile in laravel sarebbe come questo :

Route::get('{param1?}/{param2?}/{param3?}/.../{paramN?}', array(...)); 

C'è qualche altro modo? O forse passare / come parte del parametro di avere questo:

low_range-1000/high_range-5000/weight-2/height-4/red/ 

linea così sopra diventare solo un parametro percorso.

aiuto?

risposta

7

bene, ho trovato la soluzione. solo per salvare il tempo degli altri.

Route::get('{param1}/{param2?}', array(...))->where('param2', '.*'); 

questa rotte bisogno param1 come un parametro obbligatorio, e param2 come parametro opzionale che può contenere qualsiasi carattere include /.

così posso passare low_range-1000/high_range-5000/weight-2/height-4/red/ come param2.

0

faccio qualcosa di simile nei miei URL, però io uso le virgole ai parametri di ricerca separate e : per separare la chiave: valore di

low-range:1000,high-range:5000,weight:2,height:4,color:red 

Sembra più pulito che penso e non hai bisogno di permettere tutto nella vostra URL o problemi con l'autorizzazione di/in un parametro

PS avere troppi/in un URL è considerato una cattiva pratica a fini SEO