2015-07-14 8 views
2

Есть ли способ объявить неограниченное количество параметров в маршрутах Laravel 5, похожих на Codeigniter?Как объявить неограниченные параметры в Laravel?

Я собираюсь создать большое приложение и объявить каждый параметр в файле маршрута для каждой функции невозможным. Я много искал, но не получил никакого решения.

+1

Посмотрите на второй части [этот ответ] (http://stackoverflow.com/a/27343858/1903366) – lukasgeiter

+0

Так это значит, что мне нужно объявить маршрут для каждого контроллера. Есть ли что-то похожее на Codeigniter? –

+0

Вы прочитали ** вторую часть ** ответа? Это может быть не то же самое, что и в codeigniter (о котором я мало что знаю), но у вас может быть маршрут, который принимает один параметр маршрута, который содержит слэши. Затем вам нужно разбить этот один параметр, и вы получите массив всех сегментов ... – lukasgeiter

ответ

1

Вы можете использовать этот

//routes.php 
Route::get('{id}/{params?}', '[email protected]')->where('params', '(.*)'); 

Не забудьте поставить выше на самом конце (внизу) из routes.php файла, как это похоже на маршрут «поймать всех», так что вы должны иметь все «более конкретные» маршруты определены в первую очередь.

//controller 
class YourController extends BaseController { 

    public function action($id, $params = null) 
    { 
     if($params) 
     { 
      $params = explode('/', $params); 
      //do stuff 
     } 
    } 
} 
+0

Будет ли это генерировать URL-адрес друга SEO? Я хочу иметь URL-адреса http: //www.example.com/controller/function/param1/param2/param3/...? –

+0

@NishantKango, я редактирую свой ответ, вы можете попробовать это. –

+0

Я пробовал ваше решение. Он работает, но я должен использовать взрыв в каждой функции контроллера для всех контроллеров, что не является хорошим решением для крупных приложений. –

Смежные вопросы