С помощью CRUD с генерировал GridView на индексной странице.
На данный момент в GridView отображаются все элементы из таблицы в БД.
Хотел что бы не отображались все данные, а только те у которых например поле some_id в таблице равно 12.
Пробовал так:
В место $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
Написал
$query = SomeModel::find()->where(['some_id' => 12]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 20,
],
]);
Вроде все получилось, но теперь не работает searchModel.
Или можно как нибудь добавить условие в строку
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
UPDATE:
На самом деле в контроллере actionIndex принимает параметр some_id, и после этого выводит данные у которых выполняется условие.
public function actionIndex($some_id){
$searchModel = new SomeModelSearch();
// Я сам закомментировал
//$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
// И добал это
$query = SomeModel::find()->where(['some_id' => $some_id]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 20,
],
]);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
В $searchModel в методе search в конце перед return $dataProvider добавьте свой запрос, к примеру вот такой:
$query->andFilterWhere(['some_id' => 12]);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей