我试图从同一个模型创建2条记录,在2个不同的表中,我的表是 cruge_user 和 profile ,表格配置文件(iduser ForeignKey)属于cruge_user(iduser PrimaryKey)。因此我正在使用配置文件模型($ model)并导入cruge_user模型($ modelCruge),当我保存新记录时出现问题,我在数据库中获得7条记录,我注意到我的输入中也有7条输入_form.php所以也许是原因,但无法找到问题。
我的行动:
public function actionCreate()
{
$model=new Users;
$modelCruge=new CrugeStoredUser;
if(isset($_POST['CrugeStoredUser'], $_POST['Users']))
{
$model->attributes=$_POST['Users'];
$modelCruge->attributes=$_POST['CrugeStoredUser'];
if ($modelCruge->save(false)){
$model->iduser = $modelCruge->iduser;
$model->save(false);
}
}
$this->render('create', array(
'model'=>$model,
'modelCruge'=>$modelCruge,
));
}
这是我的_form.php
<div class="row">
<?php echo $form->labelEx($modelCruge,'username'); ?>
<?php echo $form->textField($modelCruge,'username'); ?>
<?php echo $form->error($modelCruge,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($modelCruge,'email'); ?>
<?php echo $form->textField($modelCruge,'email'); ?>
<?php echo $form->error($modelCruge,'email'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($modelCruge,'password'); ?>
<?php echo $form->textField($modelCruge,'password'); ?>
<?php echo $form->error($modelCruge,'password'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'name'); ?>
<?php echo $form->textField($model,'name',array('size'=>45,'maxlength'=>45)); ?>
<?php echo $form->error($model,'name'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'surname'); ?>
<?php echo $form->textField($model,'surname',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($model,'surname'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'rol'); ?>
<?php $data = array(
'1' => 'Padre',
'2' => 'Profesor',
); ?>
<?php echo $form->dropDownList($model,'rol', $data); ?>
<?php echo $form->error($model,'rol'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'idschool'); ?>
<?php echo $form->textField($model,'idschool'); ?>
<?php echo $form->error($model,'idschool'); ?>
</div>
<br/>
<div class="row buttons">
<?php echo CHtml::submitButton($modelCruge->isNewRecord ? 'Crear' : 'Guardar'); ?>
</div>
我提交时在数据库中获得的是:
表cruge_user:
iduser-&gt; 1,username-&gt; test,email-&gt; EMPTY,password-&gt; EMPTY ...
iduser-&gt; 2,username-&gt; test,email-&gt; test @ test.com,password-&gt; EMPTY ...
iduser-&gt; 3,username-&gt; test,email-&gt; test @ test.com,password-&gt; test ...
iduser-&gt; 4,username-&gt; test,email-&gt; test @ test.com,password-&gt; test ...
iduser-&gt; 5,username-&gt; test,email-&gt; test @ test.com,password-&gt; test ...
iduser-&gt; 6,username-&gt; test,email-&gt; test @ test.com,password-&gt; test ...
iduser-&gt; 7,username-&gt; test,email-&gt; test @ test.com,password-&gt; test ...
表格配置文件中的
iduser-&gt; 6,name-&gt; test,surname-&gt; test,rol-&gt; 1 ...
iduser-&gt; 7,name-&gt; test,surname-&gt; test,rol-&gt; 1 ..
它在表cruge_user中创建7条记录,在表格模板中创建2条记录:/ 当它只在表格中创建1条记录时:用户和同一个iduser在表格配置文件中创建一条带有额外数据的记录。
一些帮助?