0
我有兩個模型,我想在一個單一的Yii控制器/視圖中呈現現在我知道如何使它可以從兩個創建,但我訴諸了更新方的「黑客」我將不勝感激一些幫助。更新與多個型號
我有兩個模型食譜和RecipeSteps定義爲食譜控制器中的關係。 RecipeSteps有一個列「recipe_id」,它是一個外鍵和Recipes的主鍵。這兩個表都是innoDB,並且有關係設置。 RecipeSteps具有ON DELETE CASCADE和ON UPDATE RETAIN集。
這是RecipesController.php
public function actionUpdate($id)
{
$model=$this->loadModel($id);
$recipeSteps=$this->loadModelSteps($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Recipes']) && isset($_POST['RecipeSteps']))
{
$model->attributes=$_POST['Recipes'];
$recipeSteps->attributes=$_POST['RecipeSteps'];
if($model->save())
$recipeSteps->recipe_id = $model->recipe_id;
$recipeSteps->save();
$this->redirect(array('view','id'=>$model->recipe_id));
}
$this->render('update',array(
'model'=>$model,
'recipeSteps'=>$recipeSteps,
));
}
我actionUpdate這是我loadModel。
public function loadModel($id)
{
$model=Recipes::model()->findByPk($id);
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}
這是我爲另一個模型創建的第二個模型,我想凝聚成一個模型。
public function loadModelSteps($id)
{
$recipeSteps=RecipeSteps::model()->findByPk($id);
if($recipeSteps===null)
throw new CHttpException(404,'The requested page does not exist.');
return $recipeSteps;
}
所以我想要做的是弄清楚如何在actionUpdate中只有一個適用於這兩個模型的「LoadModel」。