У меня есть категория (Категория модели).Получить последнюю запись для каждой категории в одном запросе | Yii2
Каждая категория имеет дочерние категории (через поле модели модели parent_id
).
Каждая детская категория имеет продукты (через поле продукта category_id
).
Мне нужно получить последний добавленный продукт для каждой родительской категории. И в идеале это должно выполнить один запрос. Или как можно меньше запросов.
Я думаю, что он должен работать по отношению и выглядит примерно так:
$areas = Category::find()
->parent()
->published()
->orderBy('position ASC')
->with('latestProduct')
->limit(8)
->asArray()
->all();
public function getLatestProduct()
{
return $this->hasOne(Product::className(), ['category_id' => 'id'])
->viaTable('category', ['parent_id' => 'id'])
->published()
->with('firstImage')
->orderBy('date_create DESC');
}
Этот фрагмент кода не работает, как ожидалось. Правильно ли это написано и как я должен выполнять эту задачу?
вы можете добавить время столбец штамп в базе данных для каждого продукта вы добавляете, используя метку времени вы можете написать запрос, чтобы получить результаты – JKLM
если у вас есть relation'category_table с product_table и firstImage', то вы можете использовать как 'продукт .firstImage', то вы можете добавить условие с этим. –