Php laravel 5.2带连接的查询范围
我想要一个列表,包含同一订阅下的所有用户帖子。所以我有一个订阅表、用户表和post表 帖子属于用户,用户属于订阅 我在laravel.com上读到,我可以使用全局查询范围 SQL应该是(我认为): 我必须在范围文件中放置什么Php laravel 5.2带连接的查询范围,php,laravel,laravel-5,eloquent,laravel-5.2,Php,Laravel,Laravel 5,Eloquent,Laravel 5.2,我想要一个列表,包含同一订阅下的所有用户帖子。所以我有一个订阅表、用户表和post表 帖子属于用户,用户属于订阅 我在laravel.com上读到,我可以使用全局查询范围 SQL应该是(我认为): 我必须在范围文件中放置什么 public function apply(Builder $builder, Model $model) { return $builder->where(????); } 第二个问题:这是对其他订阅用户“隐藏”帖子的好方法吗?这应该可以做到: $builde
public function apply(Builder $builder, Model $model) {
return $builder->where(????);
}
第二个问题:这是对其他订阅用户“隐藏”帖子的好方法吗?这应该可以做到:
$builder
->join('users', 'posts.user_id', '=', 'users.id')
->join('subscriptions', 'users.subscription_id', '=', 'subscriptions.id')
->where('subscriptions.id', Auth::user()->subscription_id);
这是一种对其他订阅隐藏帖子的好方法,只要您始终使用帖子模型的方法来加载帖子,因为只有在全局范围被应用时。如果您使用DBfacade手动访问数据,则不会应用此选项。有一个软件包,正是为您这样做的:
$builder
->join('users', 'posts.user_id', '=', 'users.id')
->join('subscriptions', 'users.subscription_id', '=', 'subscriptions.id')
->where('subscriptions.id', Auth::user()->subscription_id);