我无法在控制器中设置动作布局以获得一些基本功能。我有一个提供帐户基本信息的视图。帐户跨越许多字段,因此用户最有可能经常进行保存。我所经历的是每次进行保存时,都会创建一个新行。 actionCreate被调用,它只是转储到表中的数据中。我必须将用户放在同一个界面上,并填写所有数据。
从我到目前为止收集的内容来看,我没有actionCreate方法的action参数,因为它失败了,因为它在第一次保存时为null。
关注我的actionCreate控制器方法的代码段:
public function actionCreate()
{
$model=new Account;
$accaddress=new AccAddress;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Account'],$_POST['AccAddress']))
{
$model->attributes=$_POST['Account'];
if($model->save()) //Account data saving
if (isset($_POST['AccAddress'])){
//Yii::log('Dumping infomration for multiple models.');
$accaddress->attributes=$_POST['AccAddress'];
$accaddress->acc_id=$model->id;
if ($pataddress->save()){//Account address saving
}
//$this->redirect(array('create','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'accaddress'=>$accaddress,
'tabss'=>$tabarray,
));
}
急切期待建议/意见。提前谢谢。
此致 费萨尔
答案 0 :(得分:0)
看起来你正在使用Gii生成的代码,这很好。从你的帖子中有点不清楚到底出了什么问题,但这里有一些事情需要检查?
用户提交的数据是否存在问题是否存在问题?是否需要修复?如果是,那么您需要使用validation rules。
您是否使用相同的表单来创建和更新记录?如果是这样,那么您需要确保将ID作为隐藏表单字段包含在某处。当您运行$model->attributes=$_POST['Account'];
时,唯一能够更新现有记录的方法是ID是$_POST['Account']
中遇到的字段之一。
帐户地址问题?例如,您是否尝试将多个帐户地址模型附加到一个帐户?如果是这样,您需要在此处添加逻辑以处理多种可能的模型。
希望其中一个有帮助。