Laravel当前路由名称包含

Laravel当前路由名称包含,laravel,Laravel,我有一组这样的路线: Route::group(['prefix' => 'messages'], function () { Route::post('/', ['as' => 'messages.store', 'uses' => 'MessagesController@store']); Route::get('{id}', ['as' => 'messages.show', 'uses' => 'MessagesController@show

我有一组这样的路线:

Route::group(['prefix' => 'messages'], function () {
    Route::post('/', ['as' => 'messages.store', 'uses' => 'MessagesController@store']);
    Route::get('{id}', ['as' => 'messages.show', 'uses' => 'MessagesController@show']);
    Route::put('{id}', ['as' => 'messages.update', 'uses' => 'MessagesController@update']);
    Route::get('{id}/read', ['as' => 'messages.read', 'uses' => 'MessagesController@read']); // ajax + Pusher
});
在我的侧栏中,我想突出显示用户单击以下任一路线时所处的区域:

<li class="d-flex flex-column {{ (Route::currentRouteName() == 'messages') ? 'active' : '' }}">
  • 如果路由为“消息”,则此操作将起作用。有没有我可以像Route::currentRouteNameContains那样做的地方。。。显然,这不是Laravel方法,但如果它包含消息,如何激活它?

    请参见帮助器函数

  • 请注意,即使路由是
    /user/chat/messages/unread
    ,也会返回true,这可能不是您想要的

    你可以看看

  • Laravel 6用户 辅助功能不再随默认安装一起提供

    你需要安装这个软件包


    希望这对您有所帮助

    您也可以使用getPrefix()helper函数

    {{ request()->route()->getPrefix() === '/messages' ? 'active' : '' }}
    
    您也可以使用路线立面来执行此操作。结果将与第一个相同

    {{ Route::current()->getPrefix() === '/messages' ? 'active' : '' }}
    
    或者组合basename()如下所示

    {{ basename(request()->route()->getPrefix()) === 'messages' ? 'active' : '' }}
    

    money@Caddy第一个对我有用,但我得等10分钟才能接受。
    {{ basename(request()->route()->getPrefix()) === 'messages' ? 'active' : '' }}