Integrity constraint violation: 1052 Column 'category_id' in where clause is ambiguous
The SQL being executed was: SELECT COUNT(*) FROM product
p
LEFT JOIN category
ON p
.category_id
= category
.id
LEFT JOIN product
ON category
.id
= product
.category_id
WHERE (p
.category_id
='1') AND (category_id
IN ('1', '6', '7', '8'))
Пытаюсь вывести продукты из дочерних категорий при выборе родительской.
ProductSearch:
public function search($params)
{
$query = Product::find()
->from(['p' => Product::tableName()])
->with(['designer', 'category'])
->joinWith([
'childrenProducts pp' => function (ActiveQuery $query) {
if (!empty($this->category_id)) {
$ids = [$this->category_id];
$childrenIds = $ids;
while ($childrenIds = Category::find()
->select('id')
->andWhere(['parent_id' => $childrenIds])
->column()) {
$ids = array_merge($ids, $childrenIds);
}
$query->andWhere(['category_id' => array_unique($ids)]);
}
}
]);
// add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$this->load($params);
if (!$this->validate()) {
// uncomment the following line if you do not want to return any records when validation fails
// $query->where('0=1');
return $dataProvider;
}
// grid filtering conditions
$query->andFilterWhere([
'p.id' => $this->id,
'p.category_id' => $this->category_id,
'p.designer_id' => $this->designer_id,
'p.price' => $this->price,
'p.new' => $this->new,
'p.hit' => $this->hit,
'p.sale' => $this->sale,
'p.created_at' => $this->created_at,
'p.updated_at' => $this->updated_at,
'pp.childrenProducts' => $this->childrenProducts
]);
Product:
/**
* @return \yii\db\ActiveQuery
*/
public function getCategory()
{
return $this->hasOne(Category::className(), ['id' => 'category_id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getDesigner()
{
return $this->hasOne(Designer::className(), ['id' => 'designer_id']);
}
public function getChildrenProducts()
{
return $this->hasMany(Product::className(), ['category_id' => 'id'])->indexBy('id');
}
Давно пытаюсь подружить, но... только учусь и не понимаю всей магии. Пожалуйста объясните подробно. Может быть есть другие варианты для этой задачи?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Может это я придираюсь или слишком избалован, но почему отсутствуют целые неймспейсы в их апи? Я класс Gate нашел только в куче классов, а неймспейс...
Привет всемЕсть вопрос по поводу стандартного шаблона в OPENCART
Написал код для входа/регистрации пользователей, теперь ломаю голову, каким образом сохранять куки пользователямВся головоломка заключается...