数据插入数据库页面重新加载Yii
我在一个表单中使用了两个模型:CName
和CDetails
。一切都运作良好。除此之外,每当我重新加载或刷新该表单页面时,空数据都将插入到数据库的两个表中。
这是控制器代码:
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,
));
}
现在,无论何时重新加载此页面,都会在两个模型的表上插入空值。控制器出了什么问题? 我查了一下,但是,一切似乎都没问题。请,任何评论或指示都会非常有用。
答案 0 :(得分:0)
首先,你可以摆脱这种情况:
if(!empty($model) && !empty($model1))
它没用,因为它总是非空的。
保存数据 - 您是否在模型规则中说明了所有字段?至少他们应该是安全的。
您也可以尝试转储错误:
var_dump($model->getErrors());