我有这段代码
public function actionIndex() {
$model = new Out();
$searchModel = new VatoutFakturOutSearch();
if (Yii::$app->request->post('hasEditable')) {
$userId = Yii::$app->user->id;
$searchModel->user_id = $userId;
$searchModel->parent_id = $userId;
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->pagination->pageSize = 100;
return $this->render('index', [
'searchModel' => $searchModel,
'model' => $model,
'dataProvider' => $dataProvider,
]);
}
actionIndex ,用于显示我的索引页面。
上面的代码会显示包含user_id==$userId
AND parent_id==$userId
的数据。
但这不是我需要的,我需要的是具有user_id==$userId
或 parent_id==$userId
的页面显示数据。
我该怎么做?
queryParams
中设置OR条件?由于
答案 0 :(得分:4)
在search()
方法中,只需添加andWhere()
条件:
$query->andWhere(['or',
['user_id' => $this->user_id],
['parent_id' => $this->user_id],
]);
或在控制器中:
$dataProvider->query->andWhere(['or',
['user_id' => $userId],
['parent_id' => $userId],
]);
答案 1 :(得分:1)
您可以使用where或operator
$dataProvider->query->andWhere(['or',
['user_id'=>$user_id],
['parent_id'=>$user_id]
]);