0

对于某些基本功能,我无法在控制器中绘制操作布局。我有一个提供帐户基本信息的视图。帐户跨越许多领域,因此用户最有可能进行频繁保存。我所经历的是,每次我进行保存时,都会创建一个新行。actionCreate 被调用,它只是将数据转储到表中。我一定要让用户在同一个界面上填写所有数据。

从到目前为止我收集到的信息来看,我不能为 actionCreate 方法设置动作参数,因为它失败了,因为它在第一次保存时为空。

按照我的 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,
    ));
}

急切期待建议/意见。提前致谢。

问候,费萨尔

4

1 回答 1

0

看起来您正在使用 Gii 生成的代码,这很好。你的帖子有点不清楚到底出了什么问题,但这里有一些事情需要检查?

用户提交的数据是否存在不正确的问题,他们需要修复它吗?如果是这样,那么您需要使用验证规则

您是否使用相同的表单来创建和更新记录?如果是这样,那么您需要确保将 ID 作为隐藏表单字段包含在某处。当您运行时$model->attributes=$_POST['Account'];,它能够更新已经存在的记录的唯一方法是 ID 是否是遇到的字段之一$_POST['Account']

是账户地址的问题吗?例如,您是否尝试将多个帐户地址模型附加到一个帐户?如果是这样,您将需要在此处添加逻辑来处理多个可能的模型。

希望其中之一有所帮助。

于 2012-10-12T19:40:42.573 回答