在Yii 多模型表单中,我们只是使用 actionCreate() 在单个视图中创建两个模型的表单。好的,到这里为止一切都很好。但是当我们在多模型的单个视图中更新两个模型时,模型将如何在这里定义? 举个例子吧,想想数据库就是这样
=== Project ===
id
task_id(FK)
description
=== Task ===
id
name
description
所以在项目控制器的 actionCreate() 中,代码会是这样的
public function actionCreate()
{
$model=new Projects;
$tasks=new Projects;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Projects'],$_POST['Tasks']))
{
$model->attributes = $_POST['Projects'];
$tasks->attributes = $_POST['Tasks'];
$valid = $model->validate();
$valid = $tasks->validate();
if($valid)
{
$model->save(false);
$tasks->save(false);
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'tasks'=>$tasks,
));
}
现在,这两个模型都可以创建了。那么该怎么做?如何声明这两个模型?任何帮助actionView()
和actionUpdate()
建议都将非常有用。