@seacjs

Почему Yii2 ListView плодит новые элементы в списке?

Есть модель Product и связаная с ней Price
public function getPrices()
    {
        return $this->hasMany(Price::class, ['product_id' => 'id']);
    }

Я пробую реализовать такой запрос и вывести его через ListView

$query = Product::find()
        ->joinWith('prices', true , 'LEFT JOIN')
        ->orderBy(['price.price' => SORT_DESC]);

$dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 10,
            ],
        ]);

В результате, отображает пагинацию на две страницы. На первой 4 продукта, а на второй 1 продукт(копия одного из первой).

Делаю проверку
VarDumper::dump($query->all,10,1);
и выводит все правильно, 4 продукта.

Если добавить условия вывода продукта с ценой от\до то ListView дублирует их еще больше...

В чем может быть проблема?
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Пропробуйте:
$query = Product::find()
        ->joinWith('prices', true , 'LEFT JOIN')
        ->orderBy(['price.price' => SORT_DESC])
        ->distinct();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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