我正在学习 laravel atm 并尝试实现 Twitter 风格的关注者提要。 到目前为止,我有以下内容
标准用户表(id、用户名等)
包含 user_id、subscriber_id、时间戳的订阅(又名关注者)表
我的用户模型包含以下关系
public function subscriptions()
{
return $this->belongsToMany('App\User', 'subscriptions', 'user_id', 'subscriber_id')->withTimestamps();
}
public function subscribers()
{
return $this->belongsToMany('App\User', 'subscriptions', 'subscriber_id', 'user_id')->withTimestamps();
}
我现在正在尝试加载用户订阅列表 IE。用户14关注用户15
$subscriber = Auth::user()->id;
$user = User::find($subscriber);
$userids = $user->subscriptions->lists('user_id');
return $userids;
我使用这段代码来获取当前登录的用户并找到他们的订阅。 $userids 应该返回当前登录用户订阅的 ID 列表。但是,尽管数据库中存在记录,但它只会生成一个空数组。 (它应该返回 15,但只返回 [] )
我是不是哪里出错了或者错过了什么?
最佳答案
使用以下方法获取当前用户的订阅者:
$subscribers = Auth::user()->subscribers;
并且您可以将订阅者发送到任何 View 和使用
@foreach ($subscribers as subscriber)
{{ $subscriber->name }}
@endforeach
关于php - Laravel 中的用户关注系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679931/