【问题标题】:data inserting into database on page reload in Yii在 Yii 中重新加载页面时将数据插入数据库
【发布时间】:2014-08-19 09:26:36
【问题描述】:

在 Yii 中重新加载页面时将数据插入数据库

我使用了两种模型:CNameCDetails 以单一形式。一切运作良好。除了,每当我重新加载或刷新该表单页面时,都会将空数据插入到数据库的两个表中。

这是控制器代码:

 public function actionCreate()
{
    $model=new CName;
    $model1=new CDetails;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if(isset($_POST['CName'])
        && ($_POST['CDetails'])
    )
    {
        $model->attributes=$_POST['CName'];
        $model1->attributes=$_POST['CDetails'];

        $valid = $model->validate();
        $valid = $model1->validate() && $valid;

        if($valid)
        {
        if(!empty($model) && !empty($model1)){
         $model->save();
         $model1->save();
         $this->redirect(array('cprimary/create'));}
        }
    }

    $this->render('create',array(
        'model'=>$model,
        'model1'=>$model1,
    ));
}

现在,每当重新加载此页面时,都会在两个模型的表中插入空值。控制器出了什么问题? 我检查了,但是,一切似乎都很好。请,任何评论或说明都会非常有帮助。

【问题讨论】:

  • 刷新时发送什么类型的请求? GET 还是 POST 请求?如果是发布请求,是否设置了 CDetails 和 CName 变量?
  • 感谢黑暗继承人。它的帖子。而且,是的,模型是变量集。

标签: php forms yii model multi-model-forms


【解决方案1】:

首先^你可以摆脱这种情况:

if(!empty($model) && !empty($model1))

它没用,因为它总是非空的。

保存数据 - 您是否在模型规则中规定了所有字段?至少它们应该是“安全的”。

您也可以尝试转储错误:

var_dump($model->getErrors());

【讨论】:

  • 哦,我明白了。实际上,我犯了一些愚蠢的错误,将两个模型上的所有属性都设置为在规则功能下安全。因此,只需单击该操作,就会插入空值。还是谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2013-08-09
相关资源
最近更新 更多