Php 表单验证抛出传递给App\Http\Controllers\Controller::validate()的参数1必须是\Http\Request的实例,给定整数
我正在尝试提交一份节省燃油详细信息的表格,它应该检查$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'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
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
是一个整数。。。在那条线以上还有别的吗。。。只需将该方法的确切代码放在错误显示的行上方,不要删除上面的内容。你可以发布路由和完整控制器文件吗?