Код: Выделить всё
public function getIngredients()
{
return $this->hasMany(Ingredients::className(), ['id' => 'ingredients_id'])
->viaTable('dishes_ingredients', ['dishes_id' => 'id']);
}
Код: Выделить всё
public function getDishes()
{
return $this->hasMany(Dishes::className(), ['id' => 'dishes_id'])
->viaTable('dishes_ingredients', ['ingredients_id' => 'id']);
}
Код: Выделить всё
private function changeStatus($id,$status_id)
{
$model = $this->findModel($id);
$transaction = $model::getDb()->beginTransaction();
try {
$model->status_id = $status_id;
$model->save();
foreach ($model->dishes as $dish) {
$dish->status_id = $status_id;
//var_dump($dish->name);
$dish->save();
}
//exit();
Yii::$app->session->setFlash('success', "Статус успешно изменен");
$transaction->commit();
} catch(\Exception $e) {
$transaction->rollBack();
Yii::$app->session->setFlash('error', $e->getMessage());
} catch(\Throwable $e) {
$transaction->rollBack();
Yii::$app->session->setFlash('error', $e->getMessage());
}
return $this->redirect(Yii::$app->request->referrer);
}
public function actionHide($id)
{
$this->changestatus($id,2);
}