在PHP IFs的Laravel 5.3 eloquent查询中添加更多条件

时间:2016-10-08 13:47:17

标签: php laravel-5 eloquent

如果我需要创建一个将根据php参数改变的查询,我该如何逐个装入雄辩的查询?

就像这种情况一样:

 if($id_curso > 0)
     $aulas = Aula
         ::select( 'fields' )
         ->where('id_curso', 3)
         ->where('condition_1');
 else
     $aulas = Aula
         ::select( 'fields' )
         ->where('condition_1');

 return $aulas->get();

这就是诀窍,但是当我改变SELECT或WHERE我将不得不在两种情况下都改变时,有没有办法做这样的事情:

 $aulas = Aula
    ::select( 'fields' );

 if($id_curso > 0)
    $aulas.= Aula::where('id_curso', 3);

 $aulas.= Aula::where('condition_1');

 return $aulas->get();

正如亚当回答的那样,很简单:

 $aulas = Aula
     ::select('fields');

 if($id_curso > 0)
     $aulas->where('id_curso', $id_curso);

 $aulas->where('condiotion_1');

 return $aulas->get();

$ aulas是一个对象,我觉得它是查询字符串,所以感谢Adam。

1 个答案:

答案 0 :(得分:1)

从记忆中脱离头顶你可以做类似的事情:

$aulas = Aula::select( 'fields' );

if($id_curso > 0) {
    $aulas->where('id_curso', 3);
} else {
    $aulas->where('condition_1');
}

$aulas->get();

如果这个剂量工作你可以这样做(不确定它是从模型运行还是必须来自DB :: table()),你需要"使用DB;&#34 ;也是):

$query = DB::select('table');
if($id_curso > 0) {
    $query->where('id_curso', 3);
} else {
    $query->where('condition_1');
}

$query->get();