如何通过Yii中的多模式表单进行更新?
如果我的创建操作是
public function actionCreate()
{
$model = new Model;
$model2 = new Model2;
$model3 = new Model3;
通常在更新操作中我会使用
public function actionUpdate($id)
{
$model = $this->loadModel($id, 'Model');
但是如何处理其他模型(Model2和Model3)。我希望能够同时更新所有模型。
答案 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;
}
希望它能帮助你。