mercredi 20 janvier 2016

laravel 5.1 retrieve nested relation using eloquent (one to one relation)

My table design is:

users: |id|username|...

tickets: |id|supp_id|...

ticket_replies: |id|ticket_id|user_id

My controllers look like:

user:

public function tickets()
{
    return $this->hasMany('App\ticket');
}

ticket:

public function ticket_replie()

    {
        return $this->hasMany('App\ticket_replie');
    }

public function supp_id()
{
    return $this->hasOne('App\User', 'id','supp_id');
}

My controller looks like this:

$tickets =  Auth::user()->tickets()->orderBy('status', 'desc')->paginate(2);

return view('protected.ticketsList', [ 
    'tickets' => $tickets,
    ]);

In my view I use:

 @foreach ($tickets as $ticket)

    <br>
    <br>
    ID: {{$ticket->id}}
    title: {{ $ticket->title}}<br>
    status: {{ returnStatus($ticket->status) }}<br>

     @if($ticket->supporter = null)
        supporter: -<br>
     @else
        supporter: {{ $ticket->supp_id()->username }}
     @endif

    created: {{ $ticket->created_at }}<br>
@endforeach

Any idea where I do wrong? I get all the time this error:

Trying to get property of non-object (View: C:\xampp\htdocs\projekt\resources\views\protected\ticketsList.blade.php)

In my point of view the relation between the tables itself is done correctly.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire