我正在尝试使用where子句来比较从id为route传递来的值。为此,我使用了以下代码:
Route::get('Bill/{id}/students',['uses' =>'BillController@student']);
我需要将ID与控制器中的列名(即grade_id)进行比较。为此,使用了以下代码:
public function student($id)
{
$data['id'] = $id;
$students=Student::all()->where('grade_id',$data);
return view('bill.students',compact('students'));
}
但是它返回的是空值。如果我传递直接值1而不是$ data。它工作得很好。谁能为我提供解决方案?
用whereLoose()
代替where()
whereLoose()此方法与where方法具有相同的签名;但是,所有值都是使用“松散”比较进行比较的
为什么会这样呢?
$data
有一个String
类型,并且Int
即使将数字值传递$data
为String类型,您也将String与type进行比较。
(1 === '1') //False
(1 === 1) //True
(1 == '1') //True
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句