我有用户表和个人资料表。在我的个人资料表中,我将用户阿凡达。所以我试着通过将这个功能变成我的用户模型来获得这些阿凡达:
public function profile(){
return $this->hasOne('App\Profile');
}
public function getAvatar()
{
if ($this->profile()->avatar){
return Storage::url($this->profile->avatar);
}else{
return Storage::url('public/avatars/default.jpg');
}
}
在我的刀片中,我正在访问这样的功能:
<img src="{{ Auth::user()->getAvatar() }}" class="user-image" alt="User Image">
但是它给了我一个错误&#34;未定义的属性&#34;。用户没有阿凡达,我希望它会得到default.jpg,那么我的代码有什么问题?感谢。
答案 0 :(得分:2)
我认为这与你从个人资料关系中获得头像的两种不同方式有关。
你的if语句
$this->profile()->avatar
你的回报
$this->profile->avatar
如果我错了,请纠正我,但我认为第二个是正确的。
答案 1 :(得分:2)
更改
if ($this->profile()->avatar){
到
if ($this->profile->avatar){
它应该可以正常工作。