Когда я пытаюсь использовать глобальную область видимости в моей модели:
protected static function boot()
{
parent::boot();
static::addGlobalScope(new PostScope(Post::TYPE_VIDEO));
static::addGlobalScope('video', function (Builder $builder) {
$builder->join('video_posts', 'post_id', '=', 'id');
});
}
Это не работает, потому что где-то Laravel обрабатывает функцию двойного вызова join()
,
Кто-нибудь сталкивался с этим? Как это исправить?
Если у вас есть класс ‘video’, я бы порекомендовал добавить отношение Eloquent между вашими двумя классами, используя hasMany / ownTo, и просто взять его, используя
static::addGlobalScope('video', function ($builder) {
$builder->with('video');
});
Других решений пока нет …