有办法定制Laravel 5资源URL吗?
例如,将user/1/edit更改为user/edit。
那是因为我不想让任何人看到URL中的id。我认为这是数据库信息,不应该泄露。
,重点是,我想在不改变路线的情况下做到这一点。另一方面,我想通过使用我拥有的资源路由来做到这一点,而不是向它们添加一些新的路由,因为当您在项目中定义一个资源路由时,它会自动向路由表中添加一些预定义的路由,并且您被迫以它们的方式使用它们。例如,您必须向user/{ user }发送GET请求以显示用户。现在,我想要一个URL,比如user/{username}来完成这个任务,而不添加新的路由,这可能吗?
如果有办法做到这一点,我很感激,如果你在这里分享它。
非常感谢
发布于 2016-11-14 06:23:34
由于在大多数情况下,id是一个自动递增的值和可猜测的值,所以您可以在这里使用users表的任何其他唯一列,例如用户名,然后在资源控制器中使用该列而不是id。假设您的表中有一个唯一的username列,因此,如果您使用该列而不是id,那么您对用户编辑的调用将类似于:
{!! route('user.edit', $user->username) !!} // let's say username is shahrokhi这相当于
user/shahrokhi/edit例如,在资源控制器中编辑用户详细信息代码可能如下:
public function edit($username)
{
$user = User::where('username', '=', $username)->firstOrFail();
// rest of your code goes here
}其他方法也是如此。
https://stackoverflow.com/questions/40582676
复制相似问题