验证JSON输入Laravel

验证JSON输入Laravel,json,validation,laravel,Json,Validation,Laravel,我使用的是来自客户端的laravel和json输入。我想知道是否有一种方法可以创建一个进行json验证而不是url参数的表单请求。我在网上找到了这门课: <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; abstract class JsonRequest extends FormRequest { /** * Get the validator instan

我使用的是来自客户端的laravel和json输入。我想知道是否有一种方法可以创建一个进行json验证而不是url参数的表单请求。我在网上找到了这门课:

<?php
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

abstract class JsonRequest extends FormRequest {

    /**
     * Get the validator instance for the request.
     *
     * @return \Illuminate\Validation\Validator
     */
    protected function getValidatorInstance()
    {
        $factory = $this->container->make('Illuminate\Validation\Factory');

        if (method_exists($this, 'validator'))
        {
            return $this->container->call([$this, 'validator'], compact('factory'));
        }
        return $factory->make(
            $this->json()->all(), $this->container->call([$this, 'rules']), $this->messages(), $this->attributes()
        );
    }
}

我很困惑。难道你不能解码json并用filter\u var之类的东西检查所有的值吗?我在找一条拉威尔路看看这个。也许会有帮助
<?php

namespace App\Http\Requests;

use App\Http\Middleware\AuthTokenMiddleware;
use App\Http\Requests\Request;
use Illuminate\Support\Facades\Input;

class VotesCreateRequest extends JsonRequest
{


    public function response(array $errors)
    {

        //
        return response()->json(["error_list" => $errors], 200);


    }


    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {return true;


        if(AuthTokenMiddleware::getUser()->can('access-group',Input::get("grp_id"))){
            return true;
        }
        else{
            return false;
        }
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {


        return [

            'sub_items'=>'required|array',
            'sub_items.*.email' =>'required'
        ];
    }
}