Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 09.11.2016 21:01:13

Как указать порядок параметров в маршруте

Здравствуйте уважаемые знатоки laravel
Подскажите пожалуйста.

Есть маршруты:
Route::get('posts/page-{page}', 'PostController@index')->where(['page' => '[1-9]+[0-9]*']);
Route::get('posts/tags/{tag}/page-{page}', 'PostController@index')->where(['page' => '[1-9]+[0-9]*', 'tag' => '\w+']);

В контроллере PostController есть экшен  index определённый как:
public function index($tag = null,  $page = null)
   
Так вот в первом варианте маршрута параметр {page} в экшен приходит в переменной  $tag

Как явно указать порядок параметров?
Спасибо!

Не в сети

#2 09.11.2016 22:09:07

гость15

Re: Как указать порядок параметров в маршруте

if (is_null($page))
        {
            $page = $tag;
            $tag = null;
        }

#3 09.11.2016 22:10:20

гость15

Re: Как указать порядок параметров в маршруте

или на два разных контроллера и уже с одного вызывать другой

#4 09.11.2016 22:10:53

гость15

Re: Как указать порядок параметров в маршруте

точнее две разные функции

#5 09.11.2016 22:35:05

Re: Как указать порядок параметров в маршруте

Спасибо, я полагал, что раз параметры именованные то как то можно, ну нет так нет.

Не в сети

#6 09.11.2016 22:41:27

Re: Как указать порядок параметров в маршруте

в роут функцию, внутри уже по параметрам вызывать нужный метод контроллера

Не в сети

#7 10.11.2016 08:52:37

Re: Как указать порядок параметров в маршруте

hzone пишет:

в роут функцию, внутри уже по параметрам вызывать нужный метод контроллера

Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?  или как то так?

Route::get('posts/tags/{tag}/page-{page}', function($tag, $page) {
      PostController::index($tag, $page);
})->where(['page' => '[1-9]+[0-9]*', 'tag' => '\w+']);

Изменено Concentum (10.11.2016 09:01:02)

Не в сети

#8 10.11.2016 10:09:45

Re: Как указать порядок параметров в маршруте

Concentum пишет:

Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?

Route::get('....', function ($id) {
    $ctrl= new Контроллер();
    return $ctrl->МетодКонтроллера($id);
});

Не в сети

#9 10.11.2016 11:15:59

Re: Как указать порядок параметров в маршруте

tmanager пишет:
Concentum пишет:

Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?

Route::get('....', function ($id) {
    $ctrl= new Контроллер();
    return $ctrl->МетодКонтроллера($id);
});

Спасибо так всё работает!

Не в сети

Подвал раздела