如果我需要创建一个会根据 PHP 参数而变化的查询,如何逐个挂载 eloquent 的查询?
就像这个例子:
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();
Adam 的回答就是这么简单吗:
$aulas = Aula
::select('fields');
if($id_curso > 0)
$aulas->where('id_curso', $id_curso);
$aulas->where('condiotion_1');
return $aulas->get();
$aulas 是一个对象,我认为它是查询字符串,所以谢谢 Adam。
根据我的记忆,你可以这样做:
$aulas = Aula::select( 'fields' );
if($id_curso > 0) {
$aulas->where('id_curso', 3);
} else {
$aulas->where('condition_1');
}
$aulas->get();
如果不起作用,你可以这样做(不确定它是从模型运行还是必须从 DB::table() 运行,你也需要“使用 DB;”):
$query = DB::select('table');
if($id_curso > 0) {
$query->where('id_curso', 3);
} else {
$query->where('condition_1');
}
$query->get();