【发布时间】:2015-06-15 13:51:28
【问题描述】:
我无法决定哪个模型应该有方法。那么让我们看看下面的代码:
class Model1 {
$value;
}
class Model2 {
}
我从控制器“属于”Model2 渲染视图。创建此视图通常是为了显示来自 Model2 的属性,以及视图的次要目标 - 显示来自多个 Model1 的 $value。在 Model1 或 Model2 中哪里更好地创建此函数。
function getValues($model2Id)
{
return (array) Model1::find()->where('Model2id' = $model2Id)
}
如果我在 Model2 中创建它,函数将不接受任何参数。如果我在 Model1 中创建函数将是静态的。 UPD 我也需要像那个函数一样使用,但是来自Model3。 where('model3Id' = $model3Id) 只有一个区别。
【问题讨论】:
-
也许使用一个特质。你可以把它们放在你想要的任何班级。
-
特质?你什么意思?
-
Trait类似于类方法,除了独立于任何类。可以在需要的地方插入。 -
你有没有研究过使用 Yii2 的行为? yiiframework.com/doc-2.0/guide-concept-behaviors.html 这里还有一个与特征的比较:yiiframework.com/doc-2.0/…
-
Model2 或 Model1 中的函数在实现上会有所不同。 Model2知道它的id,可以直接使用$this->id