Let's say I have a User
and Group
model that has a one-to-many relation. User can belong 0
or 1
group. Group can have many users.
When I show a list of users, I also want to display his group's name--if he belongs to one. So I do this:
$user->group()->first()->name
If the user doesn't belong to a group, this will--of course--throw an error.
So I do something like this:
!empty($user->group) ? $user->group()->first()->name : 'No group here'
Now in my actual app there isn't just group
. There a lot more relationships that I loop through from within the view. Like, role, account, etc.
So I don't really want to clutter up my view with that. Is there a way to check if a data exists from within the model?
Something like this, perhaps?
class User extends Model
{
// .. snip
public function group()
{
if (empty($this->group)) {
return 'Nothing here';
}
return $this->hasOne(App\Group::class);
}
}
Am I going about this the wrong way? Is this already available? I haven't seen anything on the docs or on google that can help me with this (maybe looking for the googling the wrong words?).
So if anyone could point me in the right direction, that'd be great.