И снова про фильтр и сортировку связанных моделей в 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 есть)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть таблица с ключевыми словами и связками вида (ключевое слово -> id товара)Как грамотно сделать релеватность ?
мне надо заплонировать отправку письма после того как пройдет 5дней с data1_start, на email адреса заполненных данных
Я скопировать папку backend, перейменовал ее в apiПереписал конфиги, но appasset подключается с backend-а
Подскажите, пожалуйста, как настроить ЧПУ таким образом, чтобы ссылки типа site/indexphp/test?param=0 обрабатывал файл в корне index