多模型表单上的actionUpdate

时间:2011-09-03 19:34:02

标签: php yii

如何通过Yii中的多模式表单进行更新?

如果我的创建操作是

public function actionCreate()
{
    $model = new Model;
    $model2 = new Model2;
    $model3 = new Model3;

通常在更新操作中我会使用

public function actionUpdate($id) 
{
    $model = $this->loadModel($id, 'Model');

但是如何处理其他模型(Model2和Model3)。我希望能够同时更新所有模型。

2 个答案:

答案 0 :(得分:2)

您是否更新了“loadModel”方法以使用不同的模型,例如:

public function myLoadModel($id, $m='Model')
{
    $model=$m::model()->findByPk((int)$id);
    if($model===null)
        throw new CHttpException(404,'The requested page does not exist.');
    return $model;
}

并将其用于更新功能。

答案 1 :(得分:1)

我遇到了同样的问题。 这就是我解决它的方法:

public function loadModel($id)
{
    $model=Model::model()->with('model2', 'model3',...)->findByPk((int)$id);
    if($model===null)
        throw new CHttpException(404,'Page not found.');
    return $model;
}

希望它能帮助你。