![]() |
1
2
好吧,如果我没听错的话,我有一个基于我正在做的类似事情的建议: 我有一个基本的“特征”模型。但是特性可以是“文本”特性,也可以是“图像”特性等等,但是它们都共享公共的“特性id”和其他一些列。所以我采取了一种 EAV 接近。我有一个“feature”表,然后为每个子类型(文本、图像等)都有一个表。“feature”表中的一列包含子类型信息。然后在基本“feature”模型的“afterFind()”方法中,我查看子类型列。如果子类型是“文本”,我附加一个“文本”类型的行为。此行为从子类型表中获取变量,并将其设置为与基本模型的属性一样进行访问。 像这样:
:(基表)
电缆\调制解调器\表
在ClientDevice CActiveRecord模型(基本模型)中:
这是未经测试,但现在应该发生的是,如果你得到一个ClientDevice模型 客户端设备->调制解调器信息\u 1 当然,会有更多的事情发生。这只是为了“寻找”这个案子。你将需要做更多的工作来让mass属性赋值的东西为$\文章工作,或者传递关系,或者添加afterDelete,validate和afterSave方法来支持保存和删除,等等,但是我希望这是一个有用的开始。 您还可以通过在行为中重写基本模型的\uuu get和\uu set方法使其更好,这样,如果请求子类型表中的某个列,它就会透明地从文本表中获取该列,执行模式查找以获取列名等,这比我在本例中所做的硬编码要好得多。在 yiiext 存储库和 AdvancedArBehavior 干杯! |
![]() |
Dubby · 夹具不可用于后续测试 7 年前 |
![]() |
rory-h · 3列布局-如何在每列中设置限制 7 年前 |
![]() |
user794846 · Yii 2如何在文件上载时添加自定义验证检查 7 年前 |
![]() |
mrateb · Yii2类型强制转换为整数的列 7 年前 |
![]() |
Thread7 · memcache出错 7 年前 |
![]() |
mrateb · Yii2-自定义分页 7 年前 |