Сергей Мишин Asked:2020-03-28 16:22:02 +0000 UTC2020-03-28 16:22:02 +0000 UTC 2020-03-28 16:22:02 +0000 UTC 如何将布尔值设为两个不同的复选框并进行搜索? 772 数据库和模型中有一个具有布尔值的字段。为此值写入ActiveForm或一个复选框并组织搜索GridView $query->andFilterWhere(['is_manager' => $this->is_manager,]); 没问题。 但是,如果在可视部分中元素由两个复选框组成,如何正确显示ActiveForm然后按模型中的元素列表组织搜索?例子: 也就是最后一个人可以选择按人搜索 经理人 非管理人员 两种变体 没有一个选项 php 1 个回答 Voted Best Answer Сергей Мишин 2020-03-28T19:27:45Z2020-03-28T19:27:45Z 我想并做到了: 在主模型中,我创建了一个虚拟字段: public $isManagerArray = []; 在搜索模型中SearchModel添加了以下规则: public function rules() { return [ ['isManagerArray', 'in', 'range' => [true, false]], ]; } 向方法添加了search过滤条件: public function search($params) { .... if (count($this->isManagerArray) > 1) { $query->where(['AND',['OR',[ 'is_manager' => true],['is_manager' => false]]]); } else if (count($this->isManagerArray) > 0) { $query->andFilterWhere([ 'is_manager' => $this->isManagerArray[0] ]); } ... } 我的搜索模板_search.php将有一个字段: <?php $form = ActiveForm::begin(); ?> <?= Html::checkboxList($model->formName().'[isManagerArray]', null, [1 => 'Да', 0 => 'Нет']); ?> <?php ActiveForm::end(); ?> 如果有更好的解决方案,请分享。
我想并做到了:
在主模型中,我创建了一个虚拟字段:
在搜索模型中
SearchModel添加了以下规则:向方法添加了
search过滤条件:我的搜索模板
_search.php将有一个字段:如果有更好的解决方案,请分享。