Commencé juste avec Yii (il ya deux semaines).Yii2 Gii généré créer vue ne fonctionne pas/enregistrer mais mise à jour fait
TL; DR
Création par des vues générées Gii ne fonctionne pas, mais la mise à jour ne, même ils partagent la forme et le contrôleur pas modifié.
Problème:
J'utilise le Yii2 advanced app template.
Ensuite, j'ai généré un modèle à travers le générateur de modèle et le contrôleur/vues à travers le générateur CRUD.
La seule chose que je changé est dévissant les deux champs datetime « created_at » et « created_by » de la forme et ajouté un 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()'),
],
];
}
L'étrange affaire dont je dispose, que la mise à jour fonctionne, mais le créer pas. Il ne montre aucune erreur, il reste juste sur la page ou le rend nouvellement?
Ce code intact du contrôleur:
(Suis-je obtenir ce droit que le "$ model-> save" dans le cas devrait enregistrer la databse?)
CREER :
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,
]);
}
}
MISE À JOUR:
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,
]);
}
}
Si d'autres informations sont nécessaires, veuillez commenter. Merci.
MISE À JOUR - dans la section "nécessaire" Solution
Après les deux réponses utiles, j'ai essayé vider l'erreur et il montre
array(1) { ["created_at"]=> array(1) { [0]=> string(32) "Created At darf nicht leer sein." } }
Comme suggéré je suis parti le "created_at" des règles. Après le nettoyage, créez les travaux. Je pense qu'il ne m'a pas montré l'erreur parce que j'ai supprimé le champ dans le formulaire, puisque l'utilisateur ne doit pas entrer les données directement.
Je n'ai pas bien compris quand vous avez dit ** "Il ne montre aucune erreur, il reste juste sur la page ou le rend" ** ... Vous voulez dire que l'URL change en action créer, les pages se chargent à nouveau le contenu est le même de la mise à jour de l'action? Ou la page ne charge même pas du tout? – Clyff
Est-il possible de nous montrer les points de vue? – Clyff
Les vues sont les vues standard générées par gii. Et oui, pour moi, il semble que la page se charge à nouveau, le contenu du formulaire est pré-rempli avec mes données entrées, peu d'erreur ou quelque chose comme ça. – michaK