在yii2的控制器中,我有以下内容:
$searchModel = new HealthSearch();
$dataProvider = $searchModel->search(['HealthSearch'=>['zip'=>$zipcode]]);
有效,但我希望它也能搜索zipcodes和专业
我试过了:
$dataProvider = $searchModel->search(['HealthSearch'=>['zip'=>$zipcode,'pri_spec'=>$sspec']]);
但这不起作用?什么是正确的搜索方式?
答案 0 :(得分:0)
删除最后一个引用的'
。你的代码应该工作正常。更易于阅读的版本可能如下所示:
$searchByAttr['HealthSearch'] = [
'zip' => $zipcode,
'pri_spec' => $sspec
];
$dataProvider = $searchModel->search($searchByAttr);
此外,您需要检查首先负责进行搜索的HealthSearch
班级。 Gii 会从您的模型中生成一个主要的样板文件,需要在后续步骤中对您的应用进行调整。默认情况下,HealthSearch::search()
方法应按所有模型的安全属性进行过滤,并且作为任何ActiveRecord
类,它还具有返回这些安全属性的rules()
方法。因此,如果zip
和pri_spec
未包含在该数组中,则会被忽略。