Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте уважаемые знатоки 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
Как явно указать порядок параметров?
Спасибо!
Не в сети
if (is_null($page))
{
$page = $tag;
$tag = null;
}
или на два разных контроллера и уже с одного вызывать другой
точнее две разные функции
Спасибо, я полагал, что раз параметры именованные то как то можно, ну нет так нет.
Не в сети
в роут функцию, внутри уже по параметрам вызывать нужный метод контроллера
Не в сети
в роут функцию, внутри уже по параметрам вызывать нужный метод контроллера
Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом? или как то так?
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)
Не в сети
Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?
Route::get('....', function ($id) {
$ctrl= new Контроллер();
return $ctrl->МетодКонтроллера($id);
});
Не в сети
Concentum пишет:Извините туплю,
а как из роут функции вызвать метод контроллера, редиректом?Route::get('....', function ($id) {
$ctrl= new Контроллер();
return $ctrl->МетодКонтроллера($id);
});
Спасибо так всё работает!
Не в сети
Страницы 1