2017-08-08 82 views
0
$input = Input::all(); 

$state_name = (empty($input['state_name'])?'':$input['state_name']); 
$score = (empty($input['score'])?'':$input['score']); 

$GetUsersList = User::CheckForActive(); 

if($state_name!='') 
    $GetUsersList->where('state_name'.$state_name); 

if($score!='') 
    $GetUsersList->where('score'.'<'.$score) 
        ->orderBy('id', 'desc') 
        ->get(); 

你好,基礎條件,其中在雄辯

以上就是我的UserController代碼,我想根據病情的user table記錄。但每次它什麼都沒有返回。如果我刪除if條件,那麼它工作正常。但在我的情況下,它不一定每次都會通過state_namescore。這就是爲什麼我已經把if條件。

+0

在你的where子句中是否有錯字或錯誤。 –

+0

你是否試圖用SQL來做你的請求來測試你的請求的有效性? –

回答

1

既然你有orderBy->get()內第二如果條件下,你會得到結果時,纔會有如此$score!=''修改代碼就像

$GetUsersList = User::CheckForActive(); 

if($state_name!=''){ 
    $GetUsersList->where('state_name', $state_name); 
} 

if($score!=''){ 
    $GetUsersList->where('score', '<', $score); 
} 

$users = $GetUsersList->orderBy('id','desc')->get(); 

現在,你會得到相應的結果。

希望你能理解。

2

您的where()方法的語法錯誤。使用逗號,而不是鏈接的字符串。

->where('state_name', $state_name);

->where('score', '<', $score);

+0

是的,你是對的。但我的問題還沒有解決。 – Komal

0

我想你可以試試這個:

if($state_name!='') 
    $GetUsersList->where('state_name',$state_name); 

if($score!='') 
    $GetUsersList->where('score'.'<'.$score) 
        ->orderBy('id', 'desc') 
        ->get(); 

OR

if($state_name!='') 
    $GetUsersList->where('state_name',$state_name) 
        ->orderBy('id', 'desc') 
        ->get(); 

if($score!='') 
    $GetUsersList->where('score'.'<'.$score) 
        ->orderBy('id', 'desc') 
        ->get(); 

希望這對你的工作!

+0

不工作。它仍然沒有返回。 – Komal