【问题标题】:Multiple wildcards in Laravel resource routingLaravel 资源路由中的多个通配符
【发布时间】:2016-05-27 10:54:28
【问题描述】:

我声明了如下资源路由

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

这给了我一条路线

{slug}/user/{id}

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

鉴于,我声明了锚标签:<a href=user/{!! $user->id!!}>User</a> 这将我引导到 ManageUserController 中的函数 show

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

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

我哪里做错了?我怎样才能得到用户 ID 而不是 slug?

-谢谢

【问题讨论】:

  • 尝试在 show 方法 show($slug,$id) 中取 2 个参数并将它们都返回给检查。也许它会起作用。
  • 而且,这就是答案。谢谢你。成功了

标签: php laravel routing


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-06-29
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 2014-12-01
      • 2015-10-12
      相关资源
      最近更新 更多