I have two tables: User and Organisation. User contains foreign key organisation_id referencing organisation. For viewing user, it shows error ‘Trying to get property ‘name’ of non object.
UserController
public function view($id)
{
$record = User::find($id);
return view('user.view',compact('record'));
}
User.php
public function getOrg()
{
return $this->belongsTo(Organisation::class);
}
View.blade.php
<tr>
<th>Organisation</th>
<td>{{ $record->organisation_id->name }}</td>
</tr>
Try to refer another question and answer but still can’t solve it
>Solution :
In User.php
your method name should be oranisation
instead of getOrg
. Laravel calls this method organisation()
behind the scenes when accessing the $user->organisation
property.
public function organisation()
{
return $this->belongsTo(Organisation::class, 'organisation_id', 'id');
}
Then in view.blade.php
a slight tweak:
<tr>
<th>Organisation</th>
<td>{{ $record->organisation->name }}</td>
</tr>