271

Laravel v4では、現在のルート名を取得できました...

Route::currentRouteName()

Laravel v5Laravel v6でどうすればいいですか?

4

32 に答える 32

25

複数のルートでメニューを選択する場合は、次のようにします。

<li class="{{ (Request::is('products/*') || Request::is('products') || Request::is('product/*') ? 'active' : '') }}"><a href="{{url('products')}}"><i class="fa fa-code-fork"></i>&nbsp; Products</a></li>

または、1 つのメニューだけを選択する場合は、次のようにします。

<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i>&nbsp; Users</a></li>

Laravel 5.2でもテスト済み

これが誰かを助けることを願っています。

于 2016-05-11T08:35:30.117 に答える
24

route nameではなくurlが必要な場合は、他のクラスを使用/要求する必要はありません。

url()->current();
于 2016-03-17T14:04:38.427 に答える
14

Laravel 5.2を使用できます

$request->route()->getName()

現在のルート名が表示されます。

于 2016-04-15T07:55:15.367 に答える
11

5.2 では、次のようにリクエストを直接使用できます。

$request->route()->getName();

またはヘルパーメソッドを介して:

request()->route()->getName();

出力例:

"home.index"
于 2016-07-04T15:50:33.287 に答える
5

テンプレートで使用できます:

<?php $path = Route::getCurrentRoute()->getPath(); ?>
<?php if (starts_with($path, 'admin/')) echo "active"; ?>
于 2015-10-28T07:15:07.627 に答える
4

今Laravelで、5.3あなたが試したのと同じように作ることができるのを見ています:

$route = Route::current();

$name = Route::currentRouteName();

$action = Route::currentRouteAction();

https://laravel.com/docs/5.3/routing#accessing-the-current-route

于 2016-10-03T02:40:31.910 に答える
3

Request::path();より良いです、そして覚えておいてくださいuse Request;

于 2016-02-24T06:44:57.500 に答える
3

laravel 7または8では、ヘルパー関数を使用します

Get Current Route Name
request()->route()->getName()

ルートが現在のものかどうかを確認するには、マクロを使用してリクエスト クラスの独自のメソッドを作成することをお勧めします

インAppServiceProviderインboot方式 :

use Illuminate\Http\Request;
public function boot()
    {
        Request::macro('isCurrentRoute', function ($routeNames) {
            return in_array(
                request()->route()->getName(),
                is_array($routeNames) ? $routeNames : explode(",", $routeNames)
            );
        });
    }

この方法は、ブレードまたはコントローラーで使用できます

request()->isCurrentRoute('foo') // string route
request()->isCurrentRoute(['bar','foo']) //array routes
request()->isCurrentRoute('blogs,foo,bar') //string route seperated by comma

組み込みのlaravel routeメソッドを使用できます

route()->is('home');
route()->is('blogs.*'); //using wildcard
于 2021-09-18T06:51:09.393 に答える
1

解決 :

$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
于 2019-01-25T14:38:55.403 に答える