Подтвердить что ты не робот

Laravel 4 - Получить текущее название маршрута на скрытом входе для использования для поиска

У меня есть форма поиска в навигационной панели моего приложения Laravel 4. Когда кто-то вводит в поиск и отправляет запрос, я хочу, чтобы запросы выполнялись только на основе того раздела, на котором они находятся. Например, если они находятся на странице блога, я хочу, чтобы он возвращал только сообщения в блоге, и если они находятся на странице пользователей, я хочу, чтобы он отображал только список пользователей.

Если мне что-то не хватает (возможно, возможно, поскольку я новичок в Laravel!), я могу это сделать, используя getCurrentRoute() → getPath(). Но я должен сделать это из формы, потому что, когда я пытаюсь сделать это в контроллере, у него больше нет старого маршрута. Итак, я создал скрытое поле в моей форме:

{{ Form::hidden('route', '{{{Route::getCurrentRoute()->getPath()}}}') }};

Однако, "getCurrentRoute() → getPath()" никогда не оценивается должным образом. Поле формы буквально печатает его:

<input name="route" type="hidden" value="&lt;?php echo e(Route::getCurrentRoute()-&gt;getPath()); ?&gt;">

Кто-нибудь знает способ заставить это работать, или есть лучший способ сделать это, что я полностью потерял? Опять же, я не могу вставить это в контроллер, как обычно, потому что в этот момент маршрут был отправлен на

// Search
Route::post('search', array('as' => 'search', 'uses' => '[email protected]'), function(){
});

В этот момент всегда считается, что имя маршрута - "поиск".

4b9b3361

Ответ 1

Попробуйте следующее:

{{ Form::hidden('route', Route::getCurrentRoute()->getPath()) }}

Потому что он уже находится внутри блока PHP.

Ответ 2

Если вы ищете именованный маршрут, используйте:

Route::currentRouteName()

Вернул бы search для примера, который вы дали.

Соответствующая документация http://laravel.com/docs/routing#named-routes