Laravel 4 - Узнайте, какой маршрут был пройден

Ну, у меня есть небольшая проблема, и я не знаю, слеп ли я, чтобы найти ее в Документации Laravel 4, или она даже не существует...

У меня есть два маршрута, которые направляют к одной и той же функции контроллера...

//List blog_posts
Route::get('/', 'BlogController@listPosts');
//List deleted blog_posts
Route::get('/bin', 'BlogController@listPosts');

Теперь, есть ли способ определить внутри функции listPosts, какой маршрут был пройден?

Конечно, я мог бы создать другую функцию внутри BlogController, но мне не нравится эта идея ^^

2 ответа

Решение

Вы можете попробовать использовать Route::current(), Он вернет объект типа Illuminate\Routing\Route который имеет метод под названием getUri:

var_dump(Route::current()->getUri());

Если вы дали своим маршрутам имя, вы также можете принять решение на основе этого:

var_dump(Route::currentRouteName());

Вы также можете использовать именованные маршруты:

Route::get('/', ['as' => 'listIndex', 'uses' => 'BlogController@listPosts']);
Route::get('/bin', ['as' => 'listBin', 'uses' => 'BlogController@listPosts']);

Это установит Route::currentRouteName() что вы могли бы, если / еще на.

Другие вопросы по тегам