我不确定这里是否有正确的术语,但我认为在Yii2中这很容易做,但我似乎无法找到。
我想要一个扩展Location
的课程ActiveRecord
,但我有两种类型的位置。为了解决这个问题,我将有一个名为location.type
的字段,它是枚举('store','campus')
。然后我想创建两个扩展名为Store and Campus的模型,每个模型只返回基于type
字段的结果。
我看到我认为Yii1.x允许名为find()的模型方法可能像这样工作:
public model find()
{
return $this->andWhere(['type' => 'store']);
}
但这在Yii2中不起作用。我听起来像是正确的做法吗?我怎样才能最好地实现这个目标?
编辑: 我发现我应该使用这里描述的ActiveQuery *。但是,不调用active()方法(或我命名的任何方法)。我似乎错过了什么。
* http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#customizing-query-classes
答案 0 :(得分:1)
好的,我需要做的事情要简单得多。我只需要覆盖模型的find()方法,如下所示:
public static function find()
{
return parent::find()->where(['type' => store']);
}