как установить фильтр в GridView

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

как установить фильтр в GridView

Сообщение docmaster »

Как сделать чтобы в GridView выводились записи только текущего пользователя который создал эту запись. Есть модуль user, article контролер и index с выводом записей в GridView. За ранее спасибо.
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: как установить фильтр в GridView

Сообщение Alexum »

В search-модели к $query добавить

Код: Выделить всё

->andWhere(['<название_атрибута_с_id_создателя>' => Yii::$app->user->id]);
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

Re: как установить фильтр в GridView

Сообщение docmaster »

добавил в 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;
}
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

Re: как установить фильтр в GridView

Сообщение docmaster »

сейчас в view все записи пропали, теперь я так понимаю нужно получить получить user_id в контроллере? если да то как правиль это сделать, вот сам код public function actionIndex()
{
$searchModel = new ArticleSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: как установить фильтр в GridView

Сообщение sosnovskiy »

Нет, больше ничего не нужно. Должно уже работать
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

Re: как установить фильтр в GridView

Сообщение docmaster »

sosnovskiy есть скайп или вк?
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: как установить фильтр в GridView

Сообщение Alexum »

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.
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: как установить фильтр в GridView

Сообщение sosnovskiy »

docmaster писал(а): 2017.06.13, 22:43 sosnovskiy есть скайп или вк?
Есть slack
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

Re: как установить фильтр в GridView

Сообщение docmaster »

Привет ввел в поиск твой скайп там выбило кучу с таким ником, можешь меня к себе добавить vladimirzlobin89 или docmaster24061989
docmaster
Сообщения: 15
Зарегистрирован: 2017.01.06, 17:41
Контактная информация:

Re: как установить фильтр в GridView

Сообщение docmaster »

sosnovskiy писал(а): 2017.06.15, 11:53
docmaster писал(а): 2017.06.13, 22:43 sosnovskiy есть скайп или вк?
Есть slack
Привет ввел в поиск твой скайп там выбило кучу с таким ником, можешь меня к себе добавить vladimirzlobin89 или docmaster24061989
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: как установить фильтр в GridView

Сообщение Alexum »

docmaster писал(а): 2017.06.22, 22:00 Привет ввел в поиск твой скайп там выбило кучу с таким ником, можешь меня к себе добавить vladimirzlobin89 или docmaster24061989
Скорее всего slack - это название мессенджера, а не его Skype :lol:
Ответить