刚开始与Yii(两周前)。Yii2 Gii生成创建视图不工作/保存,但更新确实
TL; DR
通过GII创建生成的视图不工作,但不更新,即使它们共享形式和控制器不能进行编辑。
问题:
我用的是Yii2 advanced app template。
然后我通过CRUD生成器通过模型生成器和控制器/视图生成模型。
我改变是消除从形成两个日期时间字段“created_at”和“CREATED_BY”,并增加了TimestampBehavior的唯一的事:
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
// if you're using datetime instead of UNIX timestamp:
'value' => new Expression('NOW()'),
],
];
}
奇怪的情况下,我有是,更新工作,但创造不了。它显示没有错误,它只是留在页面上或重新渲染它?
这是从控制器触及代码:
(我是不是得到正确的“$模型 - >保存”,在是否应该将其保存到DATABSE?)
CREATE :
public function actionCreate()
{
$model = new Seminar();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
UPDATE:
public function actionUpdate($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('update', [
'model' => $model,
]);
}
}
如果需要更多信息,请发表评论。 谢谢。
更新 - 解决方案
两个有用的答案我试图转储错误后,它显示
array(1) { ["created_at"]=> array(1) { [0]=> string(32) "Created At darf nicht leer sein." } }
至于建议我离开了“created_at”中的“必需的”一节中的规则。清理完成后,创建作品。 我认为它没有向我显示错误,因为我删除了表单中的字段,因为用户不应该直接输入数据。
我没有完全理解你说的**“它没有显示错误,它只是留在页面上或者重新渲染它”** ......你的意思是URL更改为动作创建,页面再次加载,但是内容与动作更新相同吗?或者页面甚至没有加载? – Clyff
是否可以向我们展示意见? – Clyff
这些视图是由gii生成的标准视图。是的,对我来说,似乎再次加载页面,表单的内容预填了我输入的数据,有点没有错误或类似的东西。 – michaK