Laravel:在视图中获取当前路由命名空间(form.blade.php)

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)

是否可以?

Ale*_*nin 6

您可以使用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)


san*_*eep 5

您可以使用 prefix 而不是 namespace ,因为您的命名空间和前缀似乎相同。

$request->route()->getPrefix()
Run Code Online (Sandbox Code Playgroud)