Laravel 5

HasManyThought et vue blade

  • Avatar de Bn44
    Membre depuis :
    17/03/2016
    Messages :
    18

    Bonsoir,

    Je viens à vous car j'essai d'utiliser HasManyThrought dans un projet où on a

    User > Client > Compterendus

    Dans mon controller Client, j'ai la fonction show suivante :


    public function show($client)
    {
    $compterendus = User::with('clients', 'compterendus')->find($client);

    return view('back.clients.show', compact('compterendus'));
    }

    Dans ma vue je fais un simple

    {{ $compterendus }}

    pour tester et ça me sort bien l'ensemble des tableaux mais je n'arrive pas à afficher uniquement les messages en faisant $compterendus->compterendus->message {"id":1,"username":"XXXt","email":"admin@la.fr","role_id":1,"seen":1,"valid":1,"confirmed":1,"confirmation_code":null,"created_at":null,"updated_at":"2016-12-22 14:55:47","clients":[{"id":1,"created_at":"30\/12\/2016 19:57:25","updated_at":"30\/12\/2016 19:57:25","Nom":"Jean Claude Martin","user_id":1},{"id":3,"created_at":"30\/12\/2016 19:57:25","updated_at":"30\/12\/2016 19:57:25","Nom":"Gis\u00e8le Clapier","user_id":1}],"compterendus":[{"id":1,"message":"ddsqdqs","created_at":"2016-12-22 21:01:15","updated_at":"2016-12-22 21:01:15","client_id":1,"user_id":1},{"id":3,"message":"testts","created_at":"2016-12-28 20:26:05","updated_at":"2016-12-28 20:26:05","client_id":1,"user_id":1}]}

    Voila mes models :

    User

    public function clients()
    {
    return $this->hasMany(Client::class);
    }

    public function compterendus()
    {
    return $this->hasManyThrough(Compterendu::class, Client::class);
    }

    Client

    public function user()
    {
    return $this->belongsTo(User::class);
    }
    public function compterendus()
    {
    return $this->hasMany(Compterendu::class);
    }

    Compterendu

    public function client()
    {
    return $this->belongsTo(Client::class);
    }

    Merci d'avance de votre aide, ça doit être tout simple :O

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

    Bonsoir,

    Dans la vue il faut faire une boucle :

    @foreach ($compterendus->compterendus as $cr)
    ...{{ $cr->message }}...
    @endforeach
  • Avatar de Bn44
    Membre depuis :
    17/03/2016
    Messages :
    18

    Merci beaucoup. J'avais essayé mais j'avais bêtement fait @Foreach ($compterendus as $cr) !!

Vous ne pouvez pas répondre à ce sujet.