Models en relaties

Opgave M2.1 - Posts van een User

Een User heeft posts. We kunnen ons User model uitbreiden om deze 'posts' van de betreffende 'user' snel op te kunnen halen. Onderstaande methode doen al het werk

app/models/User.php

public function posts()
{
    return (new Post)->where('user_id', $this->id)->get();
}

 


Alle geplaatste posts van gebruiker 2 ophalen is nu heel eenvoudig

$user = (new User)->find(2);  //selecteren van de user
dd($user->posts());

 

Voeg de methode posts() toe aan /app/models/User.php

 

Uitwerking

/app/models/User.php

 

Opgave M2.2 - User bij Post

Uiteraard kan je ook de omgekeerde relatie in model Post toevoegen.

public function user()
{
    return (new User)->where('id', $this->user_id)->get(true);
}

Voeg de methode toe aan Post

Uitwerking

/app/models/Post.php

 

Voorbeeld van gebruik

$post = (new Post)->first();
$post->user()->name; //geeft de naam van de gebruiker die de post heeft gemaakt