Yii2 фильтр по связанным таблицам

И снова про фильтр и сортировку связанных моделей в Yii2 если позволите... сделал все по инструкции но не связанным работает, если не затруднит ткните носом где неправда. Есть 2 модели User и Order, у одного User может быть несколько Order, у Order соответственно только 1 User, связаны через user.id = order.user_id что описано в связях yii:

User.php

public function getOrder() { return $this->hasMany(Order::className(), ['user_id' => 'id']); }

Order.php

public function getUser() { return $this->hasOne(User::className(), ['id' => 'user_id']); }

Есть класс OrderSearch.php, в котором добавлено поле, которое мне надо получить из таблица user - email, туда соответственно добавлена переменная

public $email;... public function rules() { return [..... [['email'], 'safe'] ]; }

Сортировку и фильтр хочу производить по id заказа, date и как раз полю email.

$dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $dataProvider->setSort([ 'attributes' => [ 'id', 'date', 'email' => [ 'asc' => ['user.email' => SORT_ASC], 'desc' => ['user.email' => SORT_DESC], 'label' => 'Email' ] ] ]);

Жадная загрузка данных модели

if (!($this->load($params) && $this->validate())) { $query->joinWith(['user']); return $dataProvider; }

Далее

$query->andFilterWhere...... ->andFilterWhere(['like', 'user.email', $this->email]); return $dataProvider;

В OrderController.php

... $searchModel = new OrderSearch(); $dataProvider = searchModel->search(Yii::$app->request->queryParams);...

И сама вьюшка index.php

<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'date', 'summ', 'delivery_summ', 'delivery_rus', 'email', ['class' => 'yii\grid\ActionColumn'], ], ]);...

В таком случае ошибка Getting unknown property: app\models\Order::email

Если ставим вместо 'email' - 'user.email' то все отображается, но нет фильтра и сортировки на этом поле (на id и date есть)

Главная IT Вопросы PHP Сортировка и фильтр поля из связанной модели Yii2


Источник: http://hostciti.net/faq/php/sortirovka-i-filtr-polya-iz-svyazannoy-modeli-yii2.html


Поделись с друзьями



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Yii2: Сортировка и фильтр gridview по связанным и Как сделать упряжку для хаски своими руками

Yii2 фильтр по связанным таблицам Yii2 фильтр по связанным таблицам Yii2 фильтр по связанным таблицам Yii2 фильтр по связанным таблицам Yii2 фильтр по связанным таблицам Yii2 фильтр по связанным таблицам

ШОКИРУЮЩИЕ НОВОСТИ