我是否可以将全局范围添加到Eloquent模型而不将其添加到模型的超类中(当在范围模型中使用超类时)?

时间:2018-01-03 23:18:20

标签: laravel eloquent

我有一个名为Vegetable的Eloquent模型,其中定义了全局范围。该模型是我创建的另一个名为Food的模型的子类,它使用相同的数据库表,而全局范围仅限于蔬菜类使用蔬菜食品。但是蔬菜中定义的全球范围似乎适用于食品用于蔬菜的方法。这是预期的行为吗?如果是这样,除了在必要时使用withoutGlobalScope()之外还有办法吗?

class Vegetable extends Food
{
    ...some code omitted

    public function someMethod()
    {
        // this can't find the food unless it's a vegetable
        $food = Food::find(1);
    }

    protected static function boot()
    {
        parent::boot();
        static::addGlobalScope(new VegetableScope);
    }
}

0 个答案:

没有答案