Bad Request (#400) - Manque des paramètres: id dans YII2
Je veux faire une opération CRUD à l'aide de GII Outil, mais je reçois le message d'erreur Missing required parameters: id
, quand j'essaie d'enregistrer mon post.
Poste de contrôleur:
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,
]);
}
}
Pourquoi dois-je toujours cette erreur?
Afficher le code de
c'est le
actionView()
.c'est le
actionView
: public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); }
OriginalL'auteur Shinoda_ | 2015-02-21
Vous devez vous connecter pour publier un commentaire.
Essayer
Assurez-vous que vous ne
$model->save(false)
et voir si cela fonctionne.$model->save(false)
. pourquoi devraitfalse
?Lorsque vous utilisez
$model->save(false)
, il ignore la validation. Si cela fonctionne pour vous, que signifie lerules
que vous avez mentionné dans votremodel
sont incorrectes. Fixer votrerules
et essayez d'enregistrer votre modèle sansfalse
. Si tout est correct, il va travailler.merci, je sais maintenant où est mon erreur.
OriginalL'auteur Abhimanyu Saharan
essayer cette
OriginalL'auteur Jey
Un couple de choses que vous pouvez essayer ici:
$model->post_id
est null, avant de l'utiliser.Voir exemple ci-dessous
save()
a été couronnée de succès avant de l'utiliser:voir ci-dessous le code
Autre que cela, je vous conseille de poster le code pour
actionView
et de la classePost
ainsisave()
et le résultat estarray(0) { }
. et puis quoi ensuite ? j'ai encore comprendre que dois-je faire après le vérifier. je suis novice avec yii. code pouractionView
:public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); }
J'ai édité le code: vous devez attribuer les
save()
méthode à une variable ( je la nomme$success
) et puis vidage cette variable pour voir si la sauvegarde a fonctionné ou pas.J'ai essayé, et le résultat est
bool(false)
OriginalL'auteur Felipe Almeida
Il est évidemment se passe sur $this->redirect. Vérifier votre url dans les règles main.php fichier.
Il doit être situé quelque part ici, dans main.php
OriginalL'auteur Oleksii Danylevskyi
Certains champs sont trop courts, de sorte qu'il ne peut pas stocker mais maintenant montrer exact des messages d'erreur.
- Je augmenter la taille du champ, c'est ok.
OriginalL'auteur Songwut K.