Laravel v4では、現在のルート名を取得できました...
Route::currentRouteName()
Laravel v5とLaravel v6でどうすればいいですか?
Laravel v4では、現在のルート名を取得できました...
Route::currentRouteName()
Laravel v5とLaravel v6でどうすればいいですか?
複数のルートでメニューを選択する場合は、次のようにします。
<li class="{{ (Request::is('products/*') || Request::is('products') || Request::is('product/*') ? 'active' : '') }}"><a href="{{url('products')}}"><i class="fa fa-code-fork"></i> Products</a></li>
または、1 つのメニューだけを選択する場合は、次のようにします。
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
Laravel 5.2でもテスト済み
これが誰かを助けることを願っています。
route nameではなくurlが必要な場合は、他のクラスを使用/要求する必要はありません。
url()->current();
Laravel 5.2を使用できます
$request->route()->getName()
現在のルート名が表示されます。
5.2 では、次のようにリクエストを直接使用できます。
$request->route()->getName();
またはヘルパーメソッドを介して:
request()->route()->getName();
出力例:
"home.index"
テンプレートで使用できます:
<?php $path = Route::getCurrentRoute()->getPath(); ?>
<?php if (starts_with($path, 'admin/')) echo "active"; ?>
今Laravelで、5.3
あなたが試したのと同じように作ることができるのを見ています:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https://laravel.com/docs/5.3/routing#accessing-the-current-route
Request::path();
より良いです、そして覚えておいてくださいuse Request;
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
解決 :
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;