Laravel вызвать контроллер в анонимной функции в роутинге

215
19 августа 2018, 13:00

В документации полно примеров как вызвать метод контроллера для обработки конкретного url. Например:

Route::get('user/profile', 'UserController@showProfile')

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

Route::get('{rubric}/{article?}', function($rubric, $article = null){
    if(is_null($article)){
        Controller::call('BlogController@main'); //Не работает
    } else{
        ...
    }
});
Answer 1

Я бы посоветовал использовать для этой цели редирект:

Route::get('{rubric}/{article?}', function($rubric, $article = null){
    if (is_null($article)) {
        return redirect(action('BlogController@main'));
    } else {
        ...
    }
});
Answer 2

Судя по вашему примеру кода, вам подойдет решение в виде двух записей в файле с маршрутами:

Route::get('{rubric}/{article}', function($rubric, $article){
   // ...
});
Route::get('{rubric}', 'BlogController@main');

Тогда первый маршрут останется замыканием и обработкой одной статьи, а второй маршрут отработает страницу всей рубрики.

READ ALSO
LDAP: ldap_rename параметры функции

LDAP: ldap_rename параметры функции

помогите пожалуйста примером у кого есть, какие параметры требует функция php ldap_rename(), не совсем понимаю что она требует, глядя на документацию...

228
Прописать путь к скрипту в другом файле

Прописать путь к скрипту в другом файле

Скрипт 1 находится на: domains/site/script/functionphp Скрипт 2 на: domains/site/include/connect

182
API транзакция blockchain

API транзакция blockchain

нашел в доке такую конструкцию, правильно ли я понимаю, что так можно проверить по хеш данного кошелька, что был осуществлен перевод? И если...

212
PHP промежуточный редирект

PHP промежуточный редирект

Есть ссылка на страницу А в которой при первом посещении записывается в куки информация о посещении страницы, затем сразу идет редирект на страницу...

193