Есть 3 таблицы "blud", "tproduct", "tproducts_attributes"
"blud" - хранит список блюд
"tproduct" - хранит список продуктов
"tproducts_attributes" - таблица для связи "blud" и "tproduct"
Скажите, пожалуйста, как правильно составить связи в моделях "многие ко многим" (проверьте пожалуйста, правильно ли я сделал связи) и связал их в "tproducts_attributes" и как правильно составить запрос в controller чтоб вывести только те списки блюд которые относиться к продукту (которые указаны в таблице "tproducts_attributes")??
Пока в Controller вывожу так (все блюда):
$values = Blud::find()->all();
Связь в модели "blud":
public function getBluds()
{
return $this->hasMany(Blud::className(), ['blud_id' => 'id']);
}
Связь в модели "tproduct":
public function getBluds()
{
return $this->hasMany(Blud::className(), ['tproduct_id' => 'id']);
}
Связи в модели "tproducts_attributes":
public function getBlud()
{
return $this->hasOne(Blud::className(), ['id' => 'blud_id']);
}
public function getTproduct()
{
return $this->hasOne(Tproduct::className(), ['id' => 'tproduct_id']);
}
Rules в модели "tproducts_attributes":
[['tproduct_id'], 'exist', 'skipOnError' => true, 'targetClass' => Tproduct::className(), 'targetAttribute' => ['tproduct_id' => 'id']],
[['blud_id'], 'exist', 'skipOnError' => true, 'targetClass' => Blud::className(), 'targetAttribute' => ['blud_id' => 'id']],