Php 如何解决“类型错误:传递给App\Http\Controllers\Controller::validate()的参数1必须是\Http\Request的实例”的问题?

Php 如何解决“类型错误:传递给App\Http\Controllers\Controller::validate()的参数1必须是\Http\Request的实例”的问题?,php,arrays,laravel,validation,laravel-5.3,Php,Arrays,Laravel,Validation,Laravel 5.3,我的代码如下: public function functionA(Request $request) { ... if($request->get('data')) { //echo '<pre>';print_r($request->get('data'));echo '</pre>';die(); $data = json_decode($request->get('data'), true);

我的代码如下:

public function functionA(Request $request)
{
    ...
    if($request->get('data')) {
        //echo '<pre>';print_r($request->get('data'));echo '</pre>';die();
        $data = json_decode($request->get('data'), true);
        $data = collect($data['data']);
        $this->validate($data, [
            'id'=>'required|numeric',
            'quantity'=>'required|numeric',
        ]);
        $input = $data->only('id', 'quantity','request_date');
        ...
    }
}
回波结果;死亡像这样:

public function functionA(Request $request)
{
    ...
    if($request->get('data')) {
        //echo '<pre>';print_r($request->get('data'));echo '</pre>';die();
        $data = json_decode($request->get('data'), true);
        $data = collect($data['data']);
        $this->validate($data, [
            'id'=>'required|numeric',
            'quantity'=>'required|numeric',
        ]);
        $input = $data->only('id', 'quantity','request_date');
        ...
    }
}
{数据:{id:46,数量:1,总数:100000,信息:chelsea,姓名:Hazard,请求日期:14-08-2017 16:26:00},过期日期:2017-08-14T06:27:00.738Z}

如果执行代码,则存在如下错误:

public function functionA(Request $request)
{
    ...
    if($request->get('data')) {
        //echo '<pre>';print_r($request->get('data'));echo '</pre>';die();
        $data = json_decode($request->get('data'), true);
        $data = collect($data['data']);
        $this->validate($data, [
            'id'=>'required|numeric',
            'quantity'=>'required|numeric',
        ]);
        $input = $data->only('id', 'quantity','request_date');
        ...
    }
}
类型错误:参数1传递给 App\Http\Controllers\Controller::validate必须是的实例 照亮\Http\Request


如何解决此错误?

传递给validate的第一个参数应该是Illumb\Http\Request的实例

因此,您需要将$request对象作为第一个参数传递给validate方法,如下所示

use Illuminate\Http\Request;
如果您以JSON的形式接收输入,请确保将请求的内容类型头设置为application/JSON

jqueryajax示例

如果您使用的是使用请求;在控制器中,然后将其替换为


我已经用过了。但这是萨米人干的$数据=$request@SuccessMan看看你发布的$data代码,我还是很困惑。您能更详细地更新您的答案吗?将传递以验证的参数从$data更改为$requestNo error后,它是否仍会抛出错误。但是验证没有显示出来。这是:如果您作为JSON接收输入,请确保将请求的内容类型头设置为application/JSON。我如何设置它?