我想知道是否可以使用连接或子查询在两个或更多模型之间使用Laravel的本地范围?
例如,这是活动范围的用户模型。
class User extends Model
{
public function scopeActive($query)
{
return $query->where('active', 1);
}
}
其他模型是具有范围的UserSubscription。
class UserSubscription extends Model
{
public function scopeType($query, $type)
{
return $query->where('type', $type);
}
}
如何在单个查询中使用这两个范围?以下声明无效。
$users = Users::active()
->join('UserSubscription', 'users.id', '=','UserSubscription.user_id')
->UserSubscription::type()
->get();
我使用的是Laravel 5.2。 https://laravel.com/docs/5.3/eloquent#local-scopes
答案 0 :(得分:0)
如果你在两个模型类中都建立了模型关系,你可以进行如下查询:
$users= User::where('active', 1)->whereHas('user_subscriptions', function ($query) {
$query->where('type', $type);
})->get();