【问题标题】:Extending a model class in Yii 1.x在 Yii 1.x 中扩展模型类
【发布时间】:2014-09-23 10:26:47
【问题描述】:

我在扩展 AR 模型类时遇到问题。我有一个表 jobs 和其他三个表,它们与工作具有 1 对 1 的关系。 detailsgeoscandetailsseismicdetails3d。我有一个扩展 CActiveRecord 的所有 4 个表的模型。我想改变这个,所以detailsgeoscan 扩展jobs。我已将类行替换如下

class Detailsgeoscan extends Jobs

我的问题是如何访问和设置父模型字段?

例如,目前我正在查询jobs 然后detailsgeoscan,我想查询detailsgeoscan 模型并能够看到jobs 表和detailsgeoscan 的所有字段并能够更新/创建/删除相应的行。

更新

我将如何重写以下内容。 PROJID 在父类中。

Detailsgeoscan::model()->findAll(array("condition"=>"PROJID=".$model->PROJID));

【问题讨论】:

  • parent::someFunction()parent::someVar。但是为什么不使用 Yii 的关系呢?
  • @Justinas 更新问题
  • 所以如果PROJID$model 的父级属性,那么$model 可以访问它的父级元素,例如它自己:$model->PROJID,就像每个$model 都会有attributes CActiveRecord中父类的属性

标签: php yii model parent-child extends


【解决方案1】:

简短的回答:不要。

长答案:你可以做你想做的事(多表继承),但这真的很痛苦。你有单元测试设置吗?你用起来舒服吗?你需要它才能让事情顺利进行。主要工作顺利进行有很多陷阱。

我做过一次,以后不会再做了。长期的好处似乎不值得随之而来的头痛和复杂性。

【讨论】:

  • 我遇到的问题:2 个 cjui 选项卡,1 个显示 jobs 和其他显示 detailsgeoscan。如果我转到 1 个选项卡,比如 JOBS 并对其进行排序,我希望 GEOSCAN 选项卡能够反映相同的排序数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
相关资源
最近更新 更多