簡體   English   中英

Yii2-錯誤的請求(#400)-缺少必需的參數:id

[英]Yii2 - Bad Request (#400) - Missing required parameters: id

CommentController:

public function actionCreate()
{

    $model = new Comment();

    var_dump(Yii::$app->request->post());

     if ($model->load(Yii::$app->request->post())) 
     {
        $model->user_id = Yii::$app->user->getId();
        $model->created_at = time();
        $model->updated_at = time();
        $model->save();

        return $this->redirect(Url::to(['post/view', 'id'=>$model->post_id])); 
     }

    return $this->redirect(Url::to(['/post/index'])); 
}

如果我將false傳遞給$model->save()則數據將存儲在數據庫中,並且外鍵字段'post_id'中沒有任何值,但仍無法將我重定向到正確的頁面。

對於yii來說是新手,對於軟件開發來說相對較新,任何幫助將不勝感激。

它將您重定向到post/view PostController意味着PostController - actionView($id) ,但沒有actionView($id) $id ,這是actionView($id)所必需的。 這就是為什么您會收到400個缺失的參數錯誤的原因。 您必須添加此參數-現在,如果您向save()方法添加false並保存時不包含post_id ,則無法將用戶重定向到post/view因為您沒有在GET傳遞此對象的id

為了避免這種情況,您應該檢查if if($model->save())是否確實保存了$model ,以及是否將用戶重定向到視圖。

您需要在控制器中執行以下操作。如果id存在,則將保留id值,否則它將定義並將其保留為空。

public function actionView($id='') {
  //
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM