【发布时间】:2019-03-02 10:47:40
【问题描述】:
我想将验证器与控制器分开,但 API 在 Postman 中总是以 200 OK 响应。
请求验证:
class PostRequest extends FormRequest
{
use Types;
public function authorize()
{
return true;
}
public function rules()
{
// $auth = $this->request->user();
return [
'name' => 'required|string|max:255',
'country_id' => 'required|exists:countries,id',
'city' => 'required|max:255',
'phone_no' => 'required|regex:/[0-9]{10,13}/',
'occupation' => 'required|max:255'
];
}
}
SenderController:
public function store(PostRequest $request)
{
$auth = $request->user();
$sender = Sender::create([
'name' => $request->name,
'country_id' => $request->country_id,
'city' => $request->city,
'phone_no' => $request->phone_no,
'occupation' => $request->occupation
]);
return new Resource($sender);
}
当我发送没有name 的请求时,它将返回状态为200 的响应。当我忘记输入名称时,我想在响应中显示$validator->errors()。我该怎么做?
路由和呼叫:
Route::post('sender', 'V1\SenderController@store');
POST: localhost:8000/api/v1/sender
【问题讨论】:
-
可以分享一下邮递员的截图吗
-
我已经发布了截图@ShaielndraGupta
-
“将我的验证器与我的控制器分开”是什么意思?
-
我的意思是我通常在我的控制器中使用验证,但现在,我想尝试像我现在所做的那样分离文件@emotality
-
所以注入一个普通的
Request而不是PostRequest,不是吗?顺便说一句,如果您的密钥与现在相同,您只需Sender::create($request->all());或Sender::create($request->only(['key1', 'key2']));即可,无需重新创建相同的结构。 :)
标签: php laravel validation