【问题标题】:route() returns different way in two routeroute() 在两条路线中返回不同的方式
【发布时间】:2021-07-23 12:17:25
【问题描述】:

我做了两条资源路线,并把它们绑成一个组。

Route::group(['middleware' => 'auth'], function () {
    Route::resource('user/posts', PostController::class)->name('show', 'user.posts');
    Route::resource('admin/posts', PostController::class)->middleware('is_admin')->name('show', 'admin.posts');
});

代码下面的href标签只在admin中有效,它变成'/admin/posts'。但是当非管理员用户登录时,它指向 '/posts' 而不是 '/user/posts'/。

<x-jet-nav-link href={{route('posts')}}" :active="request()->routeIs('posts')">
 {{ __('Posts') }}
</x-jet-nav-link>

所以我不得不像下面这样更改代码。

<x-jet-nav-link href="{{ route(auth()->user()->isAdmin?'admin.posts':'user.posts', '') }}" :active="request()->routeIs('posts')">
 {{ __('Posts') }}
</x-jet-nav-link>

第一种方法我错过了什么?
此外,:active= 不起作用。我该如何解决?

【问题讨论】:

    标签: php laravel laravel-8


    【解决方案1】:

    你能运行php artisan route:list 并发布输出吗?

    对于带有链接href的第二部分,我认为您需要指定posts.indexposts.show之类的路线,对于isActive,请尝试::active="request()-&gt;routeIs('posts.*')"

    【讨论】:

    • 好吧,你可以在输出中看到大部分帖子路由都注册了两次,一次给管理员,一次给用户,我建议你创建路由组并将路由分组给管理员路线,一次用于用户路线。如果您需要帮助,请告诉我,然后使用正确的路线名称, :active 属性也应该可以工作。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2018-08-24
    • 1970-01-01
    • 2014-09-12
    相关资源
    最近更新 更多