Я новичок в laravel, я пытаюсь получить аватар для пользователя, который вошел в систему, но все время получаю сообщение об ошибке.
Вызов неопределенного метода Illuminate \ Database \ Eloquent \ Relations \ HasOne :: getAvatar () (View: D: \ PI \ Project \ crud \ resources \ views \ layouts \ includes \ navbar.blade. php)
вот мое мнение
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><img src="{{auth()->user()->mahasiswa()->getAvatar()}}"
class="img-circle" alt="Avatar">
<span>{{auth()->user()->name}}</span> <i class="icon-submenu lnr lnr-chevron-down"></i></a>
<ul class="dropdown-menu">
<li><a href="/admin/{{$mhs->id}}/profile"><i class="lnr lnr-user"></i> <span>My Profile</span></a></li>
<li><a href="#"><i class="lnr lnr-envelope"></i> <span>Message</span></a></li>
<li><a href="#"><i class="lnr lnr-cog"></i> <span>Settings</span></a></li>
<li><a href="/logout"><i class="lnr lnr-exit"></i> <span>Logout</span></a></li>
</ul>
</li>
это мой контроллер
public function profile($id)
{
$mhs = Mahasiswa::find($id);
return view('admin.profile', ['mhs' => $mhs]);
}
Модель Махасисва
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use App\User;
class Mahasiswa extends Model
{
protected $table = 'mahasiswa';
protected $fillable = ['nama', 'npm', 'kelas', 'fakultas', 'program_studi', 'email', 'avatar', 'document', 'user_id'];
public function getAvatar()
{
if(!$this->avatar){
return asset('images/default.png');
}
return asset('images/'.$this->avatar);
}
public function user()
{
return $this->belongsTo(User::class)->withDefault(['avatar' => 'default.png']);
}
}
Модель пользователя
public function mahasiswa()
{
return $this->hasOne(Mahasiswa::class);
}