首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变拉拉资源url

变拉拉资源url
EN

Stack Overflow用户
提问于 2016-11-14 05:59:12
回答 1查看 1.5K关注 0票数 1

有办法定制Laravel 5资源URL吗?

例如,将user/1/edit更改为user/edit

那是因为我不想让任何人看到URL中的id。我认为这是数据库信息,不应该泄露。

,重点是,我想在不改变路线的情况下做到这一点。另一方面,我想通过使用我拥有的资源路由来做到这一点,而不是向它们添加一些新的路由,因为当您在项目中定义一个资源路由时,它会自动向路由表中添加一些预定义的路由,并且您被迫以它们的方式使用它们。例如,您必须向user/{ user }发送GET请求以显示用户。现在,我想要一个URL,比如user/{username}来完成这个任务,而不添加新的路由,这可能吗?

如果有办法做到这一点,我很感激,如果你在这里分享它。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2016-11-14 06:23:34

由于在大多数情况下,id是一个自动递增的值和可猜测的值,所以您可以在这里使用users表的任何其他唯一列,例如用户名,然后在资源控制器中使用该列而不是id。假设您的表中有一个唯一的username列,因此,如果您使用该列而不是id,那么您对用户编辑的调用将类似于:

代码语言:javascript
复制
{!! route('user.edit', $user->username) !!} // let's say username is shahrokhi

这相当于

代码语言:javascript
复制
user/shahrokhi/edit

例如,在资源控制器中编辑用户详细信息代码可能如下:

代码语言:javascript
复制
public function edit($username)
{
    $user = User::where('username', '=', $username)->firstOrFail();
    // rest of your code goes here

}

其他方法也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40582676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档