public function actionIndex()
{
$searchModel = new SubjectSearch();
$searchModel->search()->query->andFilterWhere(['in','subjectID',[1,2,3]]);
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
我已經嘗試了不同的方式像
如何在Yii2搜索模式的陣列
$searchModel->subjectID = [1,2,3]
$searchModel->search()->query->andFilterWhere(['in','subjectID',[1,2,3]]);
搜索但他們並沒有爲我工作。
實際上,在這種情況下ArrayDataprovider似乎是更好的解決方案,但Array Dataprovide不能用於過濾器。
順便說一句,真正的問題是使用ManyToMany關係進行搜索。
許多用戶爲許多組。
許多小組對許多主題。
UserGroupTbl包含用戶名和組ID
SubjectGroup包含SubjectID和羣ID
我試圖做到這一點與:
$groups = $appUser->getGroups();
$subjectIDs = [];
foreach ($groups as $group) {
$subjectIDs[] = $group->getSubjectIDs
}
$searchModel = new SubjectSearch();
$searchModel->subjectID = $subjectIDs;
但是,這並不工作,肯定不是一個好方法
請幫我一點點。
================更新==============
$searchModel = new SubjectSearch();
$searchModel->subjectID = [1,2];
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
導致 「數組到字符串轉換」錯誤。
$searchModel = new SubjectSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->query->andFilterWhere(['in','subjectID',[1,2]]);;
此方法實際上工作。 順便說一句,你有處理多次搜索的一些建議嗎?
這很奇怪。我認爲$ searchModel-> subjectID = [1,2,3];事情根本不起作用。他們只是返回一切。我會稍後再嘗試,看看我是否做錯了 –