【发布时间】:2021-12-07 20:14:43
【问题描述】:
我正在尝试在 CRUD 上遵循 REST api 的最佳实践。
GET: users/ -> all
GET: users/:id -> one specific user.
POST: users/ -> add one
PUT: users/:id -> update specific user.
DELETE: users/:id -> delete one user.
在 laravel 8 上,我想使用验证器验证 url :id,所以我在删除用户时喜欢这样:
$validator = Validator::make(['id' => $request->id], [
'id' => 'exists:users,id,deleted_at,NULL',
]);
而这种更新用户的方式:
$validator = Validator::make(array_merge($request->all(), ['id' => $request->id]), [
'id' => 'required|exists:users,id,deleted_at,NULL',
'name' => 'required',
'surname' => 'required',
'email' => 'required|email:rfc,dns'
]);
如您所见,我必须将id 放在一个数组上和/或与$request->all() 合并。
laravel 中有什么方法可以处理请求吗?
我通过 Laravel 找到了 3 种方法:
$request->add(['variable' => 'value']);
$request->merge(["key"=>"value"]);
$request->request->set(key, value);
但是在点击控制器方法之前向请求添加路由参数的解决方案会更好。
【问题讨论】: