doudang1052 2018-07-07 03:15
浏览 19
已采纳

当用户没有关注者时,尝试获取非对象错误的属性

I get the following error, whenever i go to a user profile page and the user doesn't have followers.I am using laravel follow

Trying to get property of non-object $user->followers->get();

When a user does have followers it shows the followers with no errors.

MyFollow.php

class MyFollow extends Model
{
    use SoftDeletes, CanFollow, CanBeFollowed;

    protected $fillable = [
        'user_id',
        'followable_id'
    ];

    public $timestamps = false;

    protected $table = 'followables';

    public function followers()
    {
        $user = User::find($this->user_id); 

        $user->followers->get();


    }



}

UserController.php

public function getProfile($user)
{  
        $user = User::with(['posts.likes' => function($query) {
                            $query->whereNull('deleted_at');
                        }])
                      ->where('name','=', $user)

                      ->with(['follow' => function($query) {

                            $query->with('followers');

                       }])->first();


        if(!$user){
            return redirect('404');
        }

        return view ('profile')->withUser($user);
}

Profile.blade.php

            @foreach($user->followers as $use)
                    @isset($use->name)
                    <ul>

                        <li>{{$use->name}}</li>
                     @endisset
                    </ul>



            @endforeach

User.php

  public function follow()
    {   
        return $this->hasMany('App\MyFollow');
    }
  • 写回答

2条回答 默认 最新

  • dongqi8114 2018-07-07 03:34
    关注

    MyFollow Model

    class MyFollow extends Model
    {
        use SoftDeletes, CanFollow, CanBeFollowed;
    
        protected $fillable = [
            'user_id',
            'followable_id'
        ];
    
        public $timestamps = false;
    
        protected $table = 'followables';
    
        public function follower()
        {
            return $this->belongsTo('App\User', 'followable_id');
        }
    }
    

    change in controller

    public function getProfile($user)
    {  
            $user = User::with(['posts.likes' => function($query) {
                                $query->whereNull('deleted_at');
                            }, 'follow','follow.follower'])
                          ->where('name','=', $user)->first();
    
    
            if(!$user){
                return redirect('404');
            }
    
            return view ('profile')->with('user', $user);
    }
    

    View

    @foreach($user->follow as $follow)
         <ul>
            @if($follow->follower)
               <li>{{$follow->follower->name}}</li>
            @endif
        </ul>
    @endforeach
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab