5

我想使用 GII Tool 进行 CRUD 操作,但是Missing required parameters: id当我尝试保存帖子时收到错误消息。

后控制器:

public function actionCreate()
{
    $model = new Post();

    if ($model->load(Yii::$app->request->post())) {
        $model->post_create_time=date('Y-m-d h:m:s');
        $model->save();
        return $this->redirect(['view', 'id' => $model->id_post]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

为什么我总是收到这个错误?

4

5 回答 5

5

尝试

public function actionCreate()
{
    $model = new Post();

    if ($model->load(Yii::$app->request->post())) {
        $model->post_create_time=date('Y-m-d h:m:s');
        $model->save(false);

        return $this->redirect(['view', 'id' => $model->id_post]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

确保你这样做$model->save(false),看看它是否有效。

于 2015-02-22T06:37:27.770 回答
0

您可以在这里尝试几件事:

  • 使用前检查是否$model->post_id为null。

请参阅下面的示例

$success=$model->save();
// if it's false, it means there was an error
var_dump($success);
exit;
  • 使用前检查是否save()已经成功:

见下面的代码

if($model->save()){
    return $this->redirect(['view', 'id' => $model->id_post]);
}else{
    // show errors
    var_dump($model->getErrors();
    exit;
}

除此之外,我建议您也发布代码和actionView课程Post

于 2015-02-22T01:23:41.330 回答
0

尝试这个

public function actionCreate()
{
    $model = new Post();

    if ($model->load(Yii::$app->request->post())) {
        $model->post_create_time=date('Y-m-d h:m:s');
        if($model->save())
            return $this->redirect(['view', 'id' => $model->id_post]);
        else
            {
            return $this->render('create', [
            'model' => $mod`enter code here`el,
            ]);
        }
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}
于 2015-07-28T17:59:07.653 回答
0

这显然发生在 $this->redirect 上。检查 main.php 文件中的 url 规则。它应该位于 main.php 中的某处

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
      ...
   ]
],
于 2016-09-14T16:01:20.910 回答
0

有些字段太短,因此无法存储,但现在显示准确的错误消息。我增加字段大小,没关系。

于 2019-02-03T00:22:44.480 回答