Autour de Laravel

InvalidArgumentException(code: 0): Data missing

  • Avatar de OuedraogoMahomed
    Membre depuis :
    26/11/2018
    Messages :
    7

    Bonjour !
    Je travail avec Laravel connecter a une base de donnée mysql depuis un certain temps et tous se passe bien
    J'arrive a faire des recquetes !
    Je viens de transferer ma base de donnée sur sql server 2012
    Apres avoir bien fait les connexion a cette base de donnée sqlserver, J'obtiens une erreur:

    [2018-12-03 21:46:15] local.ERROR: Data missing {"exception":"[object] (InvalidArgumentException(code: 0): Data missing at D:\wamp64\www\bssnavette\vendor\
    esbot\carbon\src\Carbon\Carbon.php:909)
    [stacktrace]
    #0 D:\wamp64\www\bssnavette\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(715): Carbon\Carbon::createFromFormat('Y-m-d H:i:s.u', '2018-12-03 00:0...')
    #1 D:\wamp64\www\bssnavette\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(355): Illuminate\Database\Eloquent\Model->asDateTime('2018-12-03 00:0...')
    #2 D:\wamp64\www\bssnavette\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php(313): Illuminate\Database\Eloquent\Model->getAttributeValue('created_at') .................

    Quand je regarde mon code, je me rend compte que ca bloque sur ma requete ci-dessous:

    $reservations = Reservation::whereDate('datedepart', date("Y-m-d"))
    ->where('statut', '=', 1)
    ->orderBy('created_at', 'asc')
    ->get();
    $reservation->created_at

    En essayant de trouver une solution, j'ai vu sur le site de laravel, qu'il fallait ajouter dans le model la ligne suivante:
    protected $dates = ['created_at', 'updated_at'];
    Malgré cela, mon erreur n'est pas corrigé !
    comment debugger cette erreur ?

  • Avatar de MaitrePylos
    Membre depuis :
    27/05/2013
    Messages :
    231

    Bonjour quel est le type de created_at dans SqlSrv ?

  • Avatar de OuedraogoMahomed
    Membre depuis :
    26/11/2018
    Messages :
    7

    Ah !!!, je n'avais pas prété attention a cela !
    effectivement je vois que le type de "created_at" dans SqlSrv est " datetime2(0) "
    Cela a due se produire pendant la migration de la base de Mysql à SQLServer !
    SInon dans Mysql le champ "created_at" est de type datetime

    Merci !

  • Avatar de MaitrePylos
    Membre depuis :
    27/05/2013
    Messages :
    231

    C'est bon alors ?

  • Avatar de OuedraogoMahomed
    Membre depuis :
    26/11/2018
    Messages :
    7

    Non ! c'est pas encore résolu !
    Je tente de modifier le type du champ "created_at" à datetime mais cela n'accepte pas !
    Je tombe sur une erreur: " L'enregistrement des modifications n'est pas autorisé. les modifications effectués nécéssite que les tables soient suivantes soit supprimées, puis récreer. Vous avez apporté des modification a une table qui ne peut etre recréer ou activer l'option Empecher l'enregistrement de modifications qui necessite une recreation de table. "
    Je suis nouveau sur SQLServer, peut etre que je me suis trompé de l'endroit ou se font les modifications !
    Je precise que pour modifier le type du champs, j'ai fait:
    1) Clic droit sur le nom de la table "dbo.reservervations"
    2) selection "Création" dans le menu contextuel
    3) dans la colonne "type de donnée" je modifie le type de champ
    4) ctrl + s pour enrregistrer
    N'est ce pas cela la procedure ?
    Pourquoi je n'arrive donc pas à enregistrer les modification ?

  • Avatar de MaitrePylos
    Membre depuis :
    27/05/2013
    Messages :
    231

    Alors là, il faut trouver un forum SqlSrv, quiseront le plus à même de t'aider, car cela ne ressort pas de Laravel mais SlqSrv.

  • Avatar de OuedraogoMahomed
    Membre depuis :
    26/11/2018
    Messages :
    7

    Effectivement, j'ai trouver la solution a travers ce lien https://www.vulgarisation-informatique.com/impossible-modifier-table-sql-server.php
    comment faire disparaître ce message.
    Dans SQL Server Management Studio, cliquez sur le menu Tools => Options (en français : Outils => Options). Cliquez ensuite à gauche sur Designers, puis décochez la case Prevent saving changes that require table re-creation (Empêcher les changements qui requirent la re-création de la table).
    Merci pour l'intuition !!!!

Vous ne pouvez pas répondre à ce sujet.