Laravel 5.1 – получить текущий маршрут

Я работаю над функцией для получения активов (.css, .js) автоматически для каждого представления. Так что это отлично работает, скажем, « http://mywebsite.com/displayitems », / home, / about и т. Д.

Но так как я написал функцию с помощью $_SERVER['REQUEST_URI'] , у меня возникла проблема, когда у меня был маршрут вроде /displayitems/1 из-за «/ 1» на маршруте.

Тогда в Laravel 4.x у меня был отличный способ сделать это, но, к сожалению, в Laravel 5.4 это не работает.

Я искал через Интернет хороший метод для получения текущего маршрута, но без успеха. Дело в том, что я должен игнорировать любые параметры в URL-адресе запроса.

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

PS Моя текущая функция:

 public static function getAllRouteAssets() { $route = $_SERVER['REQUEST_URI']; if($route == "/") { $tag = '<link href="' . asset("assets/css/pages/home.css") . '" rel="stylesheet" type="text/css"/>'; } else { // CSS $tag = '<link href="' . asset("assets/css/pages" . $route . ".css") . '" rel="stylesheet" type="text/css"/>'; } echo $tag; //TODO: Check if file exists, homepage condition, js... } 

Вы можете попробовать следующее:

 // Add the following (`use Illuminate\Http\Request`) statement at top your the class public static function getAllRouteAssets(Request $request) { // Get the current route $currentRoute = $request->route(); } 

Обновить (получить экземпляр запроса из контейнера IoC / Service и route() вызова route() для получения текущего маршрута):

 app('request')->route(); // Current route has been retrieved 

Если вы хотите передать текущий маршрут в качестве параметра вашему методу getAllRouteAssets вам нужно изменить typehint или передать Request и вызвать метод route из метода getAllRouteAssets .

Я знаю, что это немного устарело, но есть метод, который дает вам весь путь запроса:

$request->getPathInfo();

Однако обратите внимание, что это не сработает, если вы также хотите получить строку запроса. (FYI, Laravel 5 по умолчанию не поддерживает строки запроса)

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

$request->input('id');

Пример:

http://laravel.com/api/users/?id=123 вернет /api/users используя getPathInfo() и 123 используя $request->input('id');