web-dev-qa-db-fra.com

SQLSTATE [22007]: Format de date/heure incorrect: 1366 Valeur entière incorrecte: 'nom_colonne' dans Laravel

Erreur d'insertion de données multiples Larael

SQLSTATE [22007]: Format de date/heure non valide: 1366 Valeur entière incorrecte: '' pour la colonne 'ID_unité' à la ligne 2 (SQL: insertion dans product_prices (created_at, product_id, unit_id, updated_at), valeurs (2016-12-06 06:56: 01, 27, 1,2016-12-06 06:56:01), (2016-12-06 06: 56: 01,27, 2016-12-06 06:56:01))

Mais mon champ unit_id dans nullable(); S'il vous plaît, aidez-moi ici column_name=unit_id

3
Al-Amin

null est différent de not existend. Si vous voulez définir la valeur null comme valeur, vous devez l'écrire dans votre requête:

 ... ('2016-12-06 06:56:01',27, null, '2016-12-06 06:56:01'))

De plus, le format de date et heure est incorrect. Vous devez l'entrer sous forme de chaîne.

1
Jens

Définissez 0 pour unit_id avant la requête, s'il/ null/empty . Voir exemple:

if(!isset($unit_id) || empty($unit_id)) $unit_id = 0;
.
.
//insert query rest code

Vous utilisez unit_id, est-il référencé avec des unités (id)?. Vous entrez une valeur vide pour une clé foregin référencée colonne.use null et non ''

 insert into product_prices (created_at, product_id, unit_id, updated_at)
  values (2016-12-06 06:56:01, 27, 1,2016-12-06 06:56:01), 
         (2016-12-06 06:56:01,27,null, 2016-12-06 06:56:01);
0
Parithiban

Je viens d'avoir le même problème et dans mon cas, c'était une erreur stupide dans mon contrôleur.

Ce que j'ai fait, c'est que j'ai renvoyé l'objet entier au lieu de l'identifiant, comme suit:

  public function store($id, Request $request) {

    $post = Post::find($id);

    $comment = new Comment;
    $comment->text = $request->comment;
    $comment->post_id = $post; <--- HERE IS THE MISTAKE 
    $comment->post_id = $post->id; <--- HERE IS THE FIX
    $comment->user_id = Auth::id();

    $comment->save();

    return back();

  }
0
Kaloyan Drenski