我有以下 URL:domain.com/user/3/edit。
我想知道是否建议用户ID出现在URL中,或者URL会更好,例如:domain.com/user/edit。
如果最后一个选项更好,那怎么做?将 Route Route::get 修改为 Route::post?
我有以下 URL:domain.com/user/3/edit。
我想知道是否建议用户ID出现在URL中,或者URL会更好,例如:domain.com/user/edit。
如果最后一个选项更好,那怎么做?将 Route Route::get 修改为 Route::post?
如果你想要隐藏 id,你可以为每个用户使用一个 slug,有一个“slugify”包可以很好地完成这项工作并使 url 看起来更好,除了隐藏你可以在你的数据库中的表。
如果是出于安全考虑,使用 GET 或 POST 不会有太大影响。
在这种情况下,最合适的动词仍然是 GET,因为您没有对数据库进行任何修改,只是从中获取数据。
最后,您应该利用 Laravel 直接在路由上提供的模型绑定。
如果您想更改用于Model Binding的数据库列,例如对于令牌或其他一些唯一字段,从Laravel 5.2 开始,您可以通过将其添加到模型中来实现:
关于使用POST而不是GET,它是反标准的(RESTful),GET仅用于获取资源,而POST用于创建它。我建议您查看以下良好做法:
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
如果您希望您的 URL 隐藏或屏蔽 id,我建议使用 Fakeids。
例如,它将导致 id 在您的 URL 中被屏蔽,而不是向您显示您的 url:-domain.com/user/3/edit。
它会向您显示如下内容:-domain.com/user/192849273/edit。
您的 URL 比使用 Encrypt 更干净,并且一切都是自动完成的。
文档:https ://github.com/Propaganistas/Laravel-FakeId