Laravel资源路由中的多个通配符


Multiple wildcards in Laravel resource routing

我声明了如下资源路由

Route::resource('{slug}/user','ManageUsersController'(;

这给了我一条路线

{

slug}/user/{id}

其中 slug 是公司名称的 slug,id 是用户的特定 ID。

鉴于此,我声明了锚标签:<a href=user/{!! $user->id!!}>用户</a>这会将我定向到管理用户控制器中的函数show

 public function show($id)
    {
        return $id;
    }

但返回结果是slug,而不是用户的id。我的网址project/company-name/user/5

我哪里出错了? 如何获得用户 ID 作为回报而不是 slug ?

-感谢

你必须在你的方法中同时捕获slug和id,所以你的方法会喜欢

public function show($slug, $id)
{
    //for slug
    return $slug;
    //for id
    return $id;
}

将这两个参数传递给控制器方法,因为Laravel会将第一个参数视为路由中的第一个参数(这将是您的slug(。