Besoin d'aide ?

Déploiement Laravel 5.6 sur Cpanel : Problème PHP Objet

  • Avatar de CrazyDEV
    Membre depuis :
    25/11/2018
    Messages :
    6

    Salut à tous, et toutes mes considérations aux honorables membres de ce forum.
    Mon probléme est un peu pertinent.
    J'ai créé une app web avec Laravel 5.6 qui tourne parfaitement en local avec Laragon mais dès que j'ai envoyé ce projet en ligne il y a les affichages de données selon le model objet qui ne fonctionnent pas bien. Voici un exemple :

    $client->account->account_number

    ... ce code ne fonctionne pas sur le cpanel de mon hébergeur main quand je change en ceci :

    $client->account['account_number']

    ... çà fonctionne bien
    De même la triple egalité dans les instructions if ne fonctionne pas mais plutôt la double égalité

    if($client->status === 1 or $client->status === -1) // ceci ne marche pas

    ... mais

    if($client->status == 1 or $client->status == -1) // ceci marche bien

    et juste pour me rassurer je suis allé verifier la version du php du serveur et c'est bien la version PHP7.2.
    Je sais que certains vont me demander de corriger et adopter la vieille methode qui consiste à faire ceci

    $client->account['account_number']

    au lieu de çà

    $client->account['account_number']

    mais sachez que je ne plus le faire dans tous le projet compte tenu de sa taille.
    Aidez moi s"il vous plait.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2299

    Salut,

    Quelle est la version de PHP ?

  • Avatar de CrazyDEV
    Membre depuis :
    25/11/2018
    Messages :
    6

    c'était sur 5.4 au debut et je l'ai ramené à 7.2 moi même. compte tenu des prérequis de Laravel 5.6

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2299

    C'est quand même suspect au niveau PHP... tu as fait un phpinfo ou juste regardé la version sur le CPanel ?

  • Avatar de CrazyDEV
    Membre depuis :
    25/11/2018
    Messages :
    6

    oui j'ai creé un fichier php dans lequel j'ai mis <?php echo phpinfo(); et je l'ai éxécuter.
    Cela m'a afficher la version 7.2.12 de PHP

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2299

    Quand tu dis que ça ne fonctionne pas c'est quoi l'erreur retournée ?

  • Avatar de CrazyDEV
    Membre depuis :
    25/11/2018
    Messages :
    6

    j'ai l'erreur suivante :
    Trying to get property 'account_number' of non-object
    pour ce code

    $client->account->account_number

    donc j'essaie :

    $client->account['account_number']

    et cela marche, alors qu'avec la version 7.2, je ne devrais normalement pas avoir à faire cela d'abord, je crois.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2299

    Si PHP dit que ce n'est pas un objet il a peut-être raison...

    Ca donne quoi dd(gettype ($client->account )) ?

  • Avatar de CrazyDEV
    Membre depuis :
    25/11/2018
    Messages :
    6
    dd(gettype($client->account))

    donne NULL mais

    dd(gettype($client))

    donne object

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2299

    Et comment est déterminé account ?

  • Avatar de CrazyDEV
    Membre depuis :
    25/11/2018
    Messages :
    6

    le Model Client est relié au Model Account par une clé étranger client_id par la relation 1,1
    donc j'ai placé la methode

    public function account()
    {
    return $this->hasOne(Account::class);
    }

    dans le model Client

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2299

    C'est vraiment très curieux tout ça... tu devrais réinstaller totalement l'application sur le serveur, on sait jamais.

Vous ne pouvez pas répondre à ce sujet.