错误的请求(#400) - 缺少必要的参数:ID在YII2

问题描述 投票:5回答:5

我想要使​​用GII工具一个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,
        ]);
    }
}

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

yii2 yii2-advanced-app
5个回答
4
投票

尝试

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),看看是否它是否工作。


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,
        ]);
    }
}

0
投票

一对夫妇的事情,你可以试一下:

  • 检查$model->post_id是否使用它之前空。

见下面的例子

$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的代码以及


0
投票

这显然是发生在$这个 - >重定向。检查main.php文件的URL规则。这里应位于某处main.php

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [
      ...
   ]
],

0
投票

有些领域是太短了,所以它不能存储,但现在表现出精确的错误消息。我增加字段的大小,这是确定。

© www.soinside.com 2019 - 2024. All rights reserved.