Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Php 表单验证抛出传递给App\Http\Controllers\Controller::validate()的参数1必须是\Http\Request的实例,给定整数_Php_Laravel_Request - Fatal编程技术网

Php 表单验证抛出传递给App\Http\Controllers\Controller::validate()的参数1必须是\Http\Request的实例,给定整数

Php 表单验证抛出传递给App\Http\Controllers\Controller::validate()的参数1必须是\Http\Request的实例,给定整数,php,laravel,request,Php,Laravel,Request,我正在尝试提交一份节省燃油详细信息的表格,它应该检查$vehicleMonitored是否是官方的。如果是官员,则应检查所需燃油总量是否不超过其每周限值。 代码工作正常,因为如果您尝试请求超出特定官员燃油限制的燃油,会弹出错误,但如果您请求低于官员限制的燃油,则不会保存数据。它抛出以下错误: 传递给App\Http\Controllers\Controllers::validate()的参数1必须是Lightlight\Http\Request的实例,给定整数,在2044行的C:\xampp\h

我正在尝试提交一份节省燃油详细信息的表格,它应该检查$vehicleMonitored是否是官方的。如果是官员,则应检查所需燃油总量是否不超过其每周限值。 代码工作正常,因为如果您尝试请求超出特定官员燃油限制的燃油,会弹出错误,但如果您请求低于官员限制的燃油,则不会保存数据。它抛出以下错误:

传递给App\Http\Controllers\Controllers::validate()的参数1必须是Lightlight\Http\Request的实例,给定整数,在2044行的C:\xampp\htdocs\laravel\App\Http\Controllers\FuelController.php中调用◀"

错误行2044指向验证器'date'=>'required | max:255'

 public function store(Request $request)
 {


    $this->validate($request, [
        'date' => 'required|max:255',
        'liters' => 'required',
        'type' => 'required',
        'vehicle_generator'=> 'required',
        'recipient'=> 'required',
        'vehicle_type'=> 'required',
        'voucher' => 'required',
        'authorized_by'=> 'required',
    ]);

      $requestedFuel = $request->input('liters');
      $vehicleMonitored = $request->input('vehicle_type');

    if($vehicleMonitored == 'official'){

            $official  = $request->input('recipient');
            $sum =  DB::table('fuels')->whereBetween('created_at', [
                        Carbon::now()->startOfWeek(),
                        Carbon::now()->endOfWeek(),
                     ])->where('recipient',$official)->sum('liters');

            $Name = Officials::where(DB::raw('concat(Name," ",Surname)') ,$official )->get();
            $name = $Name->pluck('Fuel_Limit');
            $limit = $name->first();
            $over = $limit - $sum;

            // sum of liters plus requested liters 
            $request = $requestedFuel + $sum;
            // dd($limit);

            if($limit != null){

                   if($request >= $limit){

                        return redirect('fuels')->with('error',  $official ." has just "            .$over.'Liters remaining for the week ');
                                         }
            if($sum > $limit){

                        return redirect('fuels')->with('error',  $official .'  readched weekly fuel limit ');

                       }

       }

    }       

            //getting input of liters and reg. no:
            $myliters = $request->input('liters'); 
            $regs = $request->input('vehicle_generator'); 

            //saves to db
            Fuel::create($request->all());


              //return message
              if($vehicleMonitored == 'official'){

                 return redirect('fuels')->with('success', " You have sucessfully Supplied ".$myliters."L to ".$official. " for ".$regs);
                    }
               else{

                   return redirect('fuels')->with('success', " You have sucessfully Supplied ".$myliters."L to  ".$regs);

                   }
   }

您正在覆盖此行中的
$request
变量:

// sum of liters plus requested liters 
$request = $requestedFuel + $sum;
只需使用不同的变量名即可-在此处和所有其他行中,期望该变量为整数:

// sum of liters plus requested liters 
$requestSum = $requestedFuel + $sum;
if($limit != null){
   if($requestSum >= $limit){
   ...
验证程序的使用应保持不变:

//getting input of liters and reg. no:
$myliters = $request->input('liters'); 
$regs = $request->input('vehicle_generator'); 

在该控制器方法的
$this->validate
行之前是否有任何内容?这是错误中正确的控制器?…第2044行,您的控制器可能变得太大:)if($vehicleMonitored=='official')高于$this->validate。我将其移动到validate下面,现在它显示“对整数调用成员函数input()。错误指向$myliters=$request->input('lills');显然,
$request
是一个整数。。。在那条线以上还有别的吗。。。只需将该方法的确切代码放在错误显示的行上方,不要删除上面的内容。你可以发布路由和完整控制器文件吗?