有没有办法自定义Laravel 5资源网址?
例如,将user/1/edit
更改为user/edit
。
那是因为我不希望任何人看到网址中的ID。我认为这是数据库信息,不应该透露。
关键是我想在不改变路线的情况下这样做。另一方面,我想通过使用我拥有的资源路由而不是通过添加一些新路由来实现这一点,正如您所知,当您在项目中定义资源路由时,它会自动将一些预定义路由添加到路由表中。被迫以他们的方式使用它们。例如,您必须向用户/ {user}发送GET请求以显示用户。现在我希望有一个像user / {username}这样的URL来实现这一点,而不需要添加新的路由,这有可能吗?
如果有办法实现这一点,如果你在这里分享,我会很感激。
非常感谢
答案 0 :(得分:1)
因为在大多数情况下id
是一个自动递增的值并且可以猜测,所以你可以在这里更好地使用users
表的任何其他唯一列,例如用户名,然后使用该列而不是{{1}在资源控制器中。假设您的表格中有一个唯一的id
列,那么,如果您使用该列而不是ID,则您对用户编辑的调用将类似于:
username
相当于
{!! route('user.edit', $user->username) !!} // let's say username is shahrokhi
现在,例如,在您的资源控制器中编辑用户详细信息代码可能如下:
user/shahrokhi/edit
等等其他方法。