Laravel v4では、次のコマンドを使用して現在のルート名を取得できました...
Route::currentRouteName()
Laravel v5とLaravel v6ではどうすればよいですか?
Laravel v4では、次のコマンドを使用して現在のルート名を取得できました...
Route::currentRouteName()
Laravel v5とLaravel v6ではどうすればよいですか?
回答:
これを試して
Route::getCurrentRoute()->getPath();
または
\Request::route()->getName()
v5.1から
use Illuminate\Support\Facades\Route;
$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel v5.2
Route::currentRouteName(); //use Illuminate\Support\Facades\Route;
または、アクション名が必要な場合
Route::getCurrentRoute()->getActionName();
リクエストURIの取得
pathメソッドはリクエストのURIを返します。したがって、着信リクエストがをターゲットにしているhttp://example.com/foo/bar
場合、pathメソッドは次を返しfoo/bar
ます:
$uri = $request->path();
このis
メソッドを使用すると、着信要求URIが特定のパターンに一致することを確認できます。*
この方法を使用する場合、文字をワイルドカードとして使用できます。
if ($request->is('admin/*')) {
//
}
パス情報だけでなく完全なURLを取得するには、リクエストインスタンスでurlメソッドを使用します。
$url = $request->url();
Laravel v5.3 ... v5.8
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Laravel v6.x ... 7.x
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
** 2019年11月11日現在-バージョン6.5 **
ルートを取得するリクエストを使用するオプションがあります
$request->route()->getName();
api/...
Route::currentRouteName();
完璧:)
$request::route()->getName()
すでに$ requestを使用している場合、またはグローバルヘルパーを使用できますrequest()::route()->getName()
。
request()->route()->getName()
。
request()
ヘルパー関数の使用は、ビューで特に役立ちます。 request()->route()->getName()
最良の選択肢です。
Laravel 5.1を使用すると、
\Request::route()->getName()
{{ route(\Request::route()->getName()) }}
。本当にありがとう!
現在のルート名を検索する方法がlaravel v5、v5.1.28、v5.2.10で機能することを発見しました
名前空間
use Illuminate\Support\Facades\Route;
そして
$currentPath= Route::getFacadeRoot()->current()->uri();
Laravel laravel v5.3の場合、次のように使用できます。
use Illuminate\Support\Facades\Route;
Route::currentRouteName();
複数のルートでメニューを選択したい場合は、次のようにします。
<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>
または、単一のメニューのみを選択したい場合は、次のようにします。
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
Laravel 5.2でもテスト済み
これが誰かを助けることを願っています。
Laravel 5.2使用できます
$request->route()->getName()
現在のルート名が表示されます。
name()
一方、この方法は、名前を追加または変更しますgetName()
方法は、それを返します。
5.2では、次のもので直接リクエストを使用できます。
$request->route()->getName();
またはヘルパーメソッドを介して:
request()->route()->getName();
出力例:
"home.index"
コントローラーアクションでは、次のようにすることができます。
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
$request
ここでLaravelのサービスコンテナによって解決されます。
getName()
それ以外の場合は名前付きルートのルート名のみを返しますnull
(ただし、\Illuminate\Routing\Route
オブジェクトを探索して他の興味深いものを探すことができます)。
つまり、「nameOfMyRoute」が返されるように、ルートを次のように定義する必要があります。
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
今Laravel 5.3
では、あなたが試したのと同じようにできることがわかりました:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https://laravel.com/docs/5.3/routing#accessing-the-current-route
現在のルートへのアクセス
ブレードテンプレートで現在のルート名を取得する
{{ Route::currentRouteName() }}
詳細についてはhttps://laravel.com/docs/5.5/routing#accessing-the-current-route
現在のルートへのアクセス(v5.3以降)
Routeファサードのcurrent、currentRouteName、およびcurrentRouteActionメソッドを使用して、着信要求を処理するルートに関する情報にアクセスできます。
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
Routeファサードの基本クラスとRouteインスタンスの両方のAPIドキュメントを参照して、すべてのアクセス可能なメソッドを確認してください。
リファレンス:https : //laravel.com/docs/5.2/routing#accessing-the-current-route
$request->route()->getName();
見てみると、コントローラーメソッドにルーターを注入することで\Illuminate\Routing\Router.php
メソッドを使用できますcurrentRouteNamed()
。例えば:
use Illuminate\Routing\Router;
public function index(Request $request, Router $router) {
return view($router->currentRouteNamed('foo') ? 'view1' : 'view2');
}
またはRouteファサードを使用:
public function index(Request $request) {
return view(\Route::currentRouteNamed('foo') ? 'view1' : 'view2');
}
このメソッドis()
を使用して、ルートに指定されたパラメータの名前が付けられているかどうかを確認することもできますが、このメソッドを使用するpreg_match()
と、ドット付きのルート名(など'foo.bar.done'
)で奇妙な動作が発生することがあります。またpreg_match()
、PHPコミュニティの大きなテーマであるパフォーマンスの問題もあります。
public function index(Request $request) {
return view(\Route::is('foo', 'bar') ? 'view1' : 'view2');
}
以下の方法を使用できます:
Route::getCurrentRoute()->getPath();
Laravelバージョン> 6.0では、以下の方法を使用できます。
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
コントローラーの現在のルート名にアクセスする
ie- http:// localhost / project_name / edit
$ request-> segment(1); //編集
(または)
$ request-> url(); // http:// localhost / project_name / edit
いくつかの理由で、これらのソリューションを使用できませんでした。私はちょうどに私のルートを宣言したように、web.php
など$router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index'])
と私のコントローラで私が使用してルートの名前ださにパラメータをtypehinted する方法を$routeName = $request->route()[1]['as'];
$request
\Illuminate\Http\Request $request
index
UserController
Lumen 5.6を使用します。それが誰かを助けることを願っています。