VladOsadchyi
@VladOsadchyi
Студент

Как сделать сортировку по двум связанным таблицам в yii2?

есть такая БД, как в gridView сделать сортировку продуктов по имени локации
5c8fe3a37f606601961001.png

UPD: решение, как всегда, в документации. в данной ситуация поможет этот метод.

Мой код:
Модель Products
public function getLocations()
    {
        return $this->hasMany(Locations::className(), ['id' => 'location_id'])
            ->viaTable('product_to_location', ['product_id' => 'id']);
    }

Класс ProductSearch
$dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 100,
            ],
            'sort' => ['defaultOrder' => ['name' => SORT_ASC],
                'attributes' => [
                    'location' => [
                        'asc' => ['locations.name' => SORT_ASC],  //locations это имя таблицы в БД, а не имя класса или геттера
                        'desc' => ['locations.name' => SORT_DESC],
                    ]
                ]
            ]
        ]);
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы