如何使用where()-和where()进行yii2查询?
我使用条件语句进行了一次查询如何使用where()-和where()进行yii2查询?,yii2,query-builder,Yii2,Query Builder,我使用条件语句进行了一次查询 $query = Student::find() ->where('status=1'); if(isset($params['standard_id']) AND !empty($params['standard_id'])){ $query->andWhere(["standard_id"=>$params['standard_id']]);
$query = Student::find()
->where('status=1');
if(isset($params['standard_id']) AND !empty($params['standard_id'])){
$query->andWhere(["standard_id"=>$params['standard_id']]);
}
if(isset($params['section_id']) AND !empty($params['section_id'])){
$query->andWhere(["section_id"=>$params['section_id']]);
}
if(isset($params['year']) AND !empty($params['year'])){
$query->andWhere(["year"=>$params['year']]);
}
//$result = $query->all();
return $query;
Mysql
select *from student where satus=1 and standard_id=3 and section_id=1 and year=2015
如果可能,在yii2中使用where-和where
请帮我试试这个。我不能清楚地理解你的问题。也许这对你有帮助
$model = User::find()
->where('satus> :satus', [':satus' => '1'])
->andWhere('standard_id= :standard_id', [':standard_id' => 3])
->andWhere('section_id= :section_id', [':section_id' => 1])
->andWhere('year= :year', [':year' => 2015])
->all();
是的,您可以同时使用
where()
和andWhere()
。这将有助于您了解它是如何工作的
以上代码中的问题是什么,是的,您可以使用它。您必须首先将参数存储在变量中,然后才能应用@sarin的答案。我注意到您的
if
条件。您可以使用isset或empty。无需同时使用。请考虑使用。这样,您甚至不需要检查是否设置了变量:Student::find()->where(['status'=>'1'])->和filterwhere(['standard\u id'=>$params['standard\u id'])
。。。