早上好,我的项目有问题。
我有2个关联表:
------------------ ------------------
| Email | | Draft |
------------------ ------------------
| id_email | | id_draft |
| subject | | subject |
| content | | content |
| to | ------------------
| etc.... |
------------------
当我们在Email
中创建email-form
时,所有值都将保存到Draft
表中,并且肯定不会保存在Email
表中。
控制器:
public function actionCreate($id_email)
{
$model = new Email();
if ($model->load(Yii::$app->request->post())) {
$modal =Draft::find()->where(['email_id' => $id_email])->one();
$date =date('Y-m-d H:i:s');
$modal->to = $model->to;
$modal->subject = $model->subject;
$modal->content = $model->content;
$modal->date_added = $date;
$modal->save();
return $this->redirect(['draft/index']);
}
return $this->render('create', [
'model' => $model,
]);
}
这是视图上的button
:
<?= Html::a('Save As Draft', ['create','id_email'=>$model->email_id], ['class' => 'btn btn-primary']) ?>
但是我遇到了错误:
谢谢
答案 0 :(得分:0)
{{1}}
您在此处为新的电子邮件模型使用属性email_id,但是在新模型中,所有属性均为空。这就是为什么您会出错。
您必须为新的电子邮件模型生成ID。可能是您将使用最后一个增量ID + 1
*请问我的英语。
答案 1 :(得分:-1)
检查控制器操作格式:
<?= Html::a('Save As Draft', ['/controllerName/create','id_email'=>$model->email_id], ['class' => 'btn btn-primary']) ?>
或者在另一个模块的另一个控制器中
<?= Html::a('Save As Draft', ['/moduleName/controllerName/create','id_email'=>$model->email_id], ['class' => 'btn btn-primary']) ?>
或在同一控制器中:
<?= Html::a('Save As Draft', ['create','id_email'=>$model->email_id], ['class' => 'btn btn-primary']) ?>