Mysql yii2中的多个where条件
嗨,我的问题很简单,我想在yii2查询bulder上添加多个where条件,但我不知道该怎么做 我的代码就是这样的Mysql yii2中的多个where条件,mysql,yii,yii2,Mysql,Yii,Yii2,嗨,我的问题很简单,我想在yii2查询bulder上添加多个where条件,但我不知道该怎么做 我的代码就是这样的 public function searchForTrip($params, $extraParams, $filter) { $query = Boatinformation::find() ->where(['what_island' => $params['BoatinformationSearch']['what_island']])
public function searchForTrip($params, $extraParams, $filter) {
$query = Boatinformation::find()
->where(['what_island' => $params['BoatinformationSearch']['what_island']])
->all();
if(isset($filter)) {
foreach ($filter as $key => $value) {
->andFilterWhere([$value => 1])
}
}
return $query;
}
这不起作用
请有人帮帮我你应该写些
public function searchForTrip($params, $extraParams, $filter) {
$query = Boatinformation::find()
->where(['what_island' => $params['BoatinformationSearch']['what_island']])
if(isset($filter)) {
foreach ($filter as $key => $value) {
$query->andFilterWhere([$value => 1])
}
}
return $query;
}
$query->andFilterWhere()
如果$value存在,则添加where条件
$query->andWhere()
始终添加where条件
如果要返回对象而不是查询,则应返回
$query->all()代码>您可以通过多种方式进行操作,您可以在本文档中找到有用的指南
可以使用字符串格式将条件指定为字符串:
$query->where('your_field1 =1 and your_field2 = 2');
您可以使用哈希格式和
$query->where([
'your_field1' => 10,
'your_field2' => null,
'your_field3' => [4, 8, 15],
]);
可以使用运算符格式
$query->where(['and' , 'your_field1', 10, ]);
你也可以使用
andWhere('your_field'=> $your_value ),
使用哇!!对于我的代码来说,这是一个完美的解决方案。谢谢lot@johnsnails如果所有条件都在和。。您可以使用哈希格式。。但这取决于你真正的意思。。尝试添加一个适当的数据和代码示例,最终会发现您的错误——这对我很有用:$query->where(['your_field1'=>10,'your_field2'=>null,'your_field3'=>[4,8,15],]);