Laravel 5.3 REST中的JSON验证错误消息
我的应用程序正在通过api端点中的Laravel 5.3 REST中的JSON验证错误消息,rest,laravel,laravel-5,laravel-5.3,Rest,Laravel,Laravel 5,Laravel 5.3,我的应用程序正在通过api端点中的POST请求创建新条目 现在,如果任何验证失败,那么Laravel5.3不会返回错误json,而是将请求重定向到主页 这是我的控制器: public function create( Request $request ) { $organization = new Organization; // Validate user input $this->validate($request, [ 'organizati
POST
请求创建新条目
现在,如果任何验证失败,那么Laravel5.3不会返回错误json,而是将请求重定向到主页
这是我的控制器:
public function create( Request $request )
{
$organization = new Organization;
// Validate user input
$this->validate($request, [
'organizationName' => 'required',
'organizationType' => 'required',
'companyStreet' => 'required'
]);
// Add data
$organization->organizationName = $request->input('organizationName');
$organization->organizationType = $request->input('organizationType');
$organization->companyStreet = $request->input('companyStreet');
$organization->save();
return response()->json($organization);
}
如果验证没有问题,那么实体将成功添加到数据库中,但是如果验证请求有问题,那么它将重定向回主页,而不是将所有错误消息作为json响应发送
如何将validate返回类型设置为json,以便在每次请求中,如果验证失败,laravel将默认以json的形式发送所有错误消息。您可以按照以下方式进行验证:
$validator = \Validator::make($request->all(), [
'organizationName' => 'required',
'organizationType' => 'required',
'companyStreet' => 'required'
]);
if ($validator->fails()) {
return response()->json($validator->errors(), 422)
}
问题中使用的验证看起来符合laravel的建议。重定向的原因是它抛出了一个异常,您可以使用下面的代码轻松捕获该异常。因此,最好使用推荐的代码方式,而不是再次重新编写框架的代码:)
我会努力的!谢谢\@rakibtg不客气,如果答案符合要求,记得接受。
public function create( Request $request )
{
$organization = new Organization;
// Validate user input
try {
$this->validate($request, [
'organizationName' => 'required',
'organizationType' => 'required',
'companyStreet' => 'required'
]);
} catch (ValidationException $e) {
return response()->json($e->validator->errors(), 422);
}
// Add data
$organization->organizationName = $request->input('organizationName');
$organization->organizationType = $request->input('organizationType');
$organization->companyStreet = $request->input('companyStreet');
$organization->save();
return response()->json($organization, 201);
}