我有一个名为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);
}
}