yii2

时间:2016-04-22 11:48:10

标签: mysql yii yii2

嗨,我的问题很简单,我想在yii2查询bulder上添加多个where条件,但我不知道在做什么。

我的代码

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;
}

这不起作用

请某人帮帮我

2 个答案:

答案 0 :(得分:5)

您可以通过多种方式进行操作,并且可以在此文档http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html

中找到有用的指南

您可以使用字符串格式将条件指定为字符串:

 $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 ),

答案 1 :(得分:4)

你应该写点像

$query->andFilterWhere()

$query->andWhere()如果存在$ value,则添加where条件

$query->all();添加条件总是

如果您想返回对象而不是查询,则应返回map $upstream_response_time $temprt { default $upstream_response_time; "" 0; }