对多个模型使用相同的范围

时间:2017-08-24 00:06:50

标签: php laravel

如何在不污染全局范围空间的情况下创建可供多个模型使用的范围?每次我想使用它时,都会手动调用此范围。

示例:

$assigns = Assign::dryScope();
$contacts = Contact::dryScope();

2 个答案:

答案 0 :(得分:3)

最好的方法是使用特征。根据需要使用适当的命名空间。 ScopeTrait.php

trait ScopeTrait {
   protected function dryScope() {
    //Scope definition
    }
}


class Assign extends xModel
{
    use ScopeTrait;

}

答案 1 :(得分:1)

您可以创建一个扩展模型的类,遵循以下模板:

class xModel extends Model
{

    protected function dryScope() {}

}


class Assign extends xModel
{

}