2016-05-29 62 views
2

我想使用where子句来比较已经从路由传递的值是id。为此,我使用了以下代码:无法将传递的值与列名进行比较。 Laravel

Route::get('Bill/{id}/students',['uses' =>'[email protected]']); 

我需要将id与控制器中的列名称进行比较,这是grade_id。对此已使用以下代码:

public function student($id) 
{ 
    $data['id'] = $id;  
    $students=Student::all()->where('grade_id',$data); 

    return view('bill.students',compact('students')); 
} 

但它返回空值。 如果我传递直接值1而不是$数据。它工作得很好。 任何人都可以提供我的解决方案吗?使用,而不是

回答

0

whereLoose()where()

whereLoose()此方法具有相同的签名,其中方法; 然而,所有的值都使用比较 “宽松” 的比较

Source

为什么会这样呢?

$dataString类型和所用,即使你通过数值$data将字符串类型Int类型比较字符串。

(1 === '1') //False 
(1 === 1) //True 
(1 == '1') //True 
+0

谢谢。它非常完美! – Anon

相关问题