как установить фильтр в GridView
как установить фильтр в GridView
Как сделать чтобы в GridView выводились записи только текущего пользователя который создал эту запись. Есть модуль user, article контролер и index с выводом записей в GridView. За ранее спасибо.
Re: как установить фильтр в GridView
В search-модели к $query добавить
Код: Выделить всё
->andWhere(['<название_атрибута_с_id_создателя>' => Yii::$app->user->id]);
Re: как установить фильтр в GridView
добавил в ArticleSearch следующий код public function search($params)
{
$query = Article::find()->andWhere(['user_id' => Yii::$app->user->id]);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
// uncomment the following line if you do not want to return any records when validation fails
// $query->where('0=1');
return $dataProvider;
}
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'date' => $this->date,
'viewed' => $this->viewed,
'user_id' => $this->user_id,
'status' => $this->status,
'category_id' => $this->category_id,
]);
$query->andFilterWhere(['like', 'title', $this->title])
->andFilterWhere(['like', 'description', $this->description])
->andFilterWhere(['like', 'content', $this->content])
->andFilterWhere(['like', 'adress', $this->adress])
->andFilterWhere(['like', 'image', $this->image])
->andFilterWhere(['like', 'references', $this->references])
->andFilterWhere(['like', 'working_days', $this->working_days])
->andFilterWhere(['like', 'weekend', $this->weekend]);
return $dataProvider;
}
{
$query = Article::find()->andWhere(['user_id' => Yii::$app->user->id]);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
// uncomment the following line if you do not want to return any records when validation fails
// $query->where('0=1');
return $dataProvider;
}
// grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'date' => $this->date,
'viewed' => $this->viewed,
'user_id' => $this->user_id,
'status' => $this->status,
'category_id' => $this->category_id,
]);
$query->andFilterWhere(['like', 'title', $this->title])
->andFilterWhere(['like', 'description', $this->description])
->andFilterWhere(['like', 'content', $this->content])
->andFilterWhere(['like', 'adress', $this->adress])
->andFilterWhere(['like', 'image', $this->image])
->andFilterWhere(['like', 'references', $this->references])
->andFilterWhere(['like', 'working_days', $this->working_days])
->andFilterWhere(['like', 'weekend', $this->weekend]);
return $dataProvider;
}
Re: как установить фильтр в GridView
сейчас в view все записи пропали, теперь я так понимаю нужно получить получить user_id в контроллере? если да то как правиль это сделать, вот сам код public function actionIndex()
{
$searchModel = new ArticleSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
{
$searchModel = new ArticleSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
-
- Сообщения: 239
- Зарегистрирован: 2017.03.28, 20:03
Re: как установить фильтр в GridView
Нет, больше ничего не нужно. Должно уже работать
Re: как установить фильтр в GridView
sosnovskiy есть скайп или вк?
Re: как установить фильтр в GridView
1) При размещении на форуме оборачивайте код в тег code;
2) На форуме можно отправлять ЛС. Если вы хотите с кем-то подружиться, то уместнее отправлять запрос именно туда, а не мусорить;
3) id пользователя можно получить из приложения, при помощи записи Yii::$app->user->id. Если вы не понимаете смысл этой записи - почитайте в документации https://nix-tips.ru/yii2-api-guides/gui ... using-user , http://stuff.cebe.cc/yii2docs-ru/guide- ... tions.html. Если вам не отображается ни одной записи, значит либо в БД нет записей с user_id текущего пользователя, либо он не аутентифицирован и в запрос подставляется null.
2) На форуме можно отправлять ЛС. Если вы хотите с кем-то подружиться, то уместнее отправлять запрос именно туда, а не мусорить;
3) id пользователя можно получить из приложения, при помощи записи Yii::$app->user->id. Если вы не понимаете смысл этой записи - почитайте в документации https://nix-tips.ru/yii2-api-guides/gui ... using-user , http://stuff.cebe.cc/yii2docs-ru/guide- ... tions.html. Если вам не отображается ни одной записи, значит либо в БД нет записей с user_id текущего пользователя, либо он не аутентифицирован и в запрос подставляется null.
-
- Сообщения: 239
- Зарегистрирован: 2017.03.28, 20:03
Re: как установить фильтр в GridView
Привет ввел в поиск твой скайп там выбило кучу с таким ником, можешь меня к себе добавить vladimirzlobin89 или docmaster24061989
Re: как установить фильтр в GridView
Привет ввел в поиск твой скайп там выбило кучу с таким ником, можешь меня к себе добавить vladimirzlobin89 или docmaster24061989