Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.3 REST中的JSON验证错误消息_Rest_Laravel_Laravel 5_Laravel 5.3 - Fatal编程技术网

Laravel 5.3 REST中的JSON验证错误消息

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

我的应用程序正在通过api端点中的
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);
}