Rah*_*rma 3 laravel laravel-5.4
我正在为我的项目使用 laravel 5.4,我只想在我的刀片文件中获取路由命名空间或前缀。那么是否有可能获得路由组命名空间?
我的路线:
Route::group(['prefix'=>'organization','namespace'=>'Organization'], function(){
Route::get('team/{id}',['as'=>'info.team' , 'uses'=>'ManageTeamController@info']);
});
Run Code Online (Sandbox Code Playgroud)
刀片文件:
{{dd(\Request::url())}}
Run Code Online (Sandbox Code Playgroud)
我得到这个:
"http://ocrm.dev/organization/team/8"
Run Code Online (Sandbox Code Playgroud)
所以我只需要:
http://ocrm.dev/organization
Run Code Online (Sandbox Code Playgroud)
是否可以?
您可以使用starts_with()和currentRouteName()检查路由名称是否从指定的命名空间字符串开始:
if (starts_with(Route::currentRouteName(), 'Organization.'))
Run Code Online (Sandbox Code Playgroud)
如果要检查 URL,请使用is()方法:
if (request()->is('organization*'))
Run Code Online (Sandbox Code Playgroud)
如果你想获得路由前缀,这是organization@sandeep稍微修改的解决方案,但全局可用(所以你可以在视图、控制器、自定义类等中使用):
request()->route()->getPrefix()
Run Code Online (Sandbox Code Playgroud)
因此,要获取此 URL:
http://ocrm.dev/organization
Run Code Online (Sandbox Code Playgroud)
你可以使用url()助手。此解决方案也是全球可用的:
url(request()->route()->getPrefix())
Run Code Online (Sandbox Code Playgroud)
您可以使用 prefix 而不是 namespace ,因为您的命名空间和前缀似乎相同。
$request->route()->getPrefix()
Run Code Online (Sandbox Code Playgroud)