IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

'Trying to get property of non-object' inrésolvable


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2017
    Messages : 7
    Par défaut 'Trying to get property of non-object' inrésolvable
    Bonjour à tous, j'ai commencé le php récemment, j'ai donc créé mon projet avec un modèle MVC proprement et j'ai un problème que je comprends pas, voici mes morceaux de code qui posent problème :

    Ma fonction dans mon repository :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public function edit($id)
        {
     
            $user = User::find($id);
            //$grade = Grade::find($user->id_grade);
            $cfds = Cfd::find($user->id_cfds);
     
             $comm = User::getCommentairePerUser($id);
     
            return compact('user', 'comm', 'cfds');
        }
    Partie de ma vue concernée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     <div class="col-sm-12">
                        {!! Form::open(array('url' => 'fondDeSalle/'. $user->id, 'method' => 'put', 'class' => 'form-horizontal panel')) !!}
     
                                <legend><strong>{{$user->grades->trigramme}} {{$user->nom}} {{$user->prenom}} </strong><em class="pull-right">{{$user->cfds->clair}}</em></legend>
                                <div class="form-group">
                                  <label for="inputDateM" class="col-lg-3 control-label" style=" text-align:left">Dernier contrôle :</label>
                                  <label class="control-label">{{$user->date_controle}}</label>
                                  <div class="col-lg-10">
                                </div>
                                </div>
                                <div class="form-group ">
                                  <label class="col-sm-4 control-label" style=" text-align:left">Date du nouveau contrôle :</label>
                                  <div class="input-group date date_controle col-sm-3" data-date=""
                                        data-link-field="dtp_input2" data-link-format="yyyy-mm-dd">
                                    <input class="form-control" id="date_controle" name="date_controle" size="16" type="text" value="" readonly>
                                    <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
                                  </div>
                                </div>
     
                          <button  type="submit" class="btn btn-primary pull-right" ><span class="fa fa-pencil"></span> Mettre à jour</button>
                        {!! Form::close()!!}
                    </div>
    Ma fonction dans mon controller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public function edit($id)
        {
            //recupération des données de l'utilisateur
            $user = User::find($id);
     
            //je teste si la personne connectée est admin ou superviseur de la même division
            //que l'utilisateur que je veux modifier
     
            if ((Auth::user()->admin)||(Auth::user()->isAutority)||((Auth::user()->isSuperviseur)&&(Auth::user()->id_cfds = $user->id_cfds))){
                return View::make('fondDeSalle.edit',  $this->gestion->edit($id));
            }
            else {
                return Redirect::route('error404');
            }
     
        }
    Voici le code exact de l'erreur "ErrorException in FondDeSalleRepository.php line 290:
    Trying to get property of non-object", et quand je fais un var_dump il me renvoi sur le mauvais utilisateur et pour certains il ne trouve carrément pas l'id, je ne comprends plus du tout.
    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Salut,
    faudrait testé le retour de ta variable $user avant d'y effectuer des opérations,
    Un test du genre
    Je suppose que la ligne qui "crie" est celle là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cfds = Cfd::find($user->id_cfds);

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2017
    Messages : 7
    Par défaut
    J'ai fait mon test, mon petit var_dump exit et il m'affiche tout de même les mauvaises valeurs et pas seulement pour id mais pour le nom et le prénom aussi, et non du coup il n'y a pas que la ligne que tu désignes, et c'est bizarre car ça me le fait seulement sur les entrées contenant ce code particulier (qui permet de mettre en évidence les utilisateurs concernés) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
                            @foreach ($nbFormateurSPenRetard as $unItem)
                              <tr class="danger">
                                <td class="text-primary text-center"><strong>{!!$unItem->grades->trigramme!!} {!!$unItem->nom!!} {!!$unItem->prenom!!}</strong></td>
                                <td class="text-primary text-center">
    															@if (empty(substr($unItem->cfds->clair,4)))
    																<strong>EMB</strong>
    															@else
    																<strong>{!! substr($unItem->cfds->clair,4) !!}</strong>
    															@endif
    														</td>
                                <td class="text-primary text-center">
                                    {!! $unItem->date_controle !!}
                                </td>
                                <td class="text-primary text-center">
                                    {!! $unItem->date_prev_controle !!}
                                </td>
                                <td class="text-primary text-center"><strong>
                                    @if ($unItem->nbComm!=0)
                                          <span class="badge">{!! $unItem->nbComm !!}</span>
                                    @endif
                                    </strong>
                                </td>
                                <td class="text-center">
                                    <a href="{!!URL::to('fondDeSalle/'.$unItem->id.'/edit')!!}" class='btn btn-success btn-xs' title="Contrôler">
                                        <i class="fa fa-edit fa-lg"></i>
                                    </a>
                                </td>
                              </tr>
                            @endforeach
    Donc je soupçonne cette partie.

  4. #4
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Cette partie que tu montres s'affiche bien non ?
    Si oui je suppose que c'est quand tu cliques sur
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a href="{!!URL::to('fondDeSalle/'.$unItem->id.'/edit')!!}" class='btn btn-success btn-xs' title="Contrôler">
       <i class="fa fa-edit fa-lg"></i>
    </a>
    A quel endroit fais-tu le var_dump ? dans le repo ? Qu'as-tu avec un var_dump($id) ? Est-ce que l'ID est correct ?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2017
    Messages : 7
    Par défaut
    J'ai trouvé la solution, j'aurais put cherché un moment car c'était une nomination de requête sur laquelle je suis tombé par hasard, donc je suis un chanceux! Merci de ton aide en tout cas et oui le problème était sur le clic sur edit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur de type : "Trying to get property of non-object in"
    Par Prisss dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 16/12/2010, 07h02
  2. [Joomla!] [Adsmanager] Notice: Trying to get property of non-object in C:\Program Files\EasyPHP
    Par ninobrown dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 13/04/2009, 21h13
  3. Réponses: 3
    Dernier message: 08/02/2008, 20h02
  4. Réponses: 11
    Dernier message: 28/08/2007, 12h06
  5. [POO] Erreur Trying to get property of non-object
    Par Niouts dans le forum Langage
    Réponses: 14
    Dernier message: 13/09/2006, 10h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo