gpt4 book ai didi

php - 如何在 laravel 中定义路由组名称

转载 作者:IT王子 更新时间:2023-10-29 00:08:06 24 4
gpt4 key购买 nike

有什么方法可以在 laravel 中定义路由组的名称吗?

我试图通过这个来完成的是知道当前请求属于哪个组,这样我就可以通过当前路由操作激活主菜单和子菜单:

代码:

Route::group(['prefix'=>'accounts','as'=>'account.'], function(){
Route::get('/', 'AccountController@index')->name('index');
Route::get('connect', 'AccountController@connect')->name('connect');
});

Route::group(['prefix'=>'quotes','as'=>'quote.'], function(){
Route::get('/', 'QuoteController@index')->name('index');
Route::get('connect', 'QuoteController@create')->name('create');
});

导航 HTML 代码

<ul>
<li> // Add class 'active' when any route is open from account route group
<a href="{{route('account.index')}}">Accounts</a>
<ul>
<li> // Add class 'active' when connect sub menu is clicked
<a href="{{route('account.connect')}}">Connect Account</a>
</li>
</ul>
</li>
<li> // Add class 'active' when any route is open from quote route group
<a href="{{route('quote.index')}}">Quotes</a>
<ul>
<li> // Add class 'active' when create sub menu is clicked
<a href="{{route('quote.create')}}">Create Quote</a>
</li>
</ul>
</li>
</ul>

现在我想要的是调用一个函数或其他东西,它会给我当前路由的组​​名。

例子:

  1. 如果我在索引或创建报价页面 getCurrentRouteGroup() 应该返回 quote
  2. 如果我在帐户的索引或连接页面上,getCurrentRouteGroup() 应该返回 account

最佳答案

这应该有效:

Route::group(['prefix'=>'accounts','as'=>'account.'], function(){
Route::get('/', ['as' => 'index', 'uses' => 'AccountController@index']);
Route::get('connect', ['as' => 'connect', 'uses' = > 'AccountController@connect']);
});

Look here解释和在official documentation (在路由组和命名路由下)。

更新

{{ $routeName = \Request::route()->getName() }}

@if(strpos($routeName, 'account.') === 0)
// do something
@endif

Rohit Khatri 的替代方案

function getCurrentRouteGroup() {
$routeName = Illuminate\Support\Facades\Route::current()->getName();
return explode('.',$routeName)[0];
}

关于php - 如何在 laravel 中定义路由组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36838177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com