[SLOVED] Yii 是否支持单表继承功能?

如在表字段设置了 class_name 字段,

如,表 product 有两条数据class_name 分别为 GeneralProduct, VirtualProduct

当使用:

$products = Product::model()->findAll();

$products[0] 为 GeneralProduct

$products[1] 为 VirtualProduct

想知道官方是否做了这样的处理,或者插件~

请参看:CActiveRecord::instantiate()

看到了这个方法,不过代码挺简单,没有看出来怎么用?

qiang,能否针对单表继承,做一下应用的说明教材,谢谢~


	protected function instantiate($attributes)

	{

		$class=get_class($this);

		$model=new $class(null);

		$model->setScenario('update');

		return $model;

	}

你可以根据$attributes的值,然后根据你的需求创建你需要的类。

thankyou~

RequestForm

RequestSARForm

RequestSSForm

以上三个模型:

RequestForm 有公共字段 created 创建时间,和id,另外有一个 class_name 字段,标识它的额外字段的模型类名

RequestSARForm 有form_id字段跟RequestForm 对应,另外有一个 subject字段

RequestSSForm 有form_id字段跟RequestForm 对应,另外有一个model_no字段

现在我通过 RequestForm::model()->findAll()查询,

那么我希望得到的 $model 有 id、form_id、class_name,created,

假如是RequestSARForm ,则要得到 subject内容,

假如是RequestSSForm ,则要得到model_no内容,

请问该怎么设置模型?

我目前的模型设置代码:


protected function instantiate($attributes)

{

    $class=$attributes['class_name'];

    $model=new $class(null);

    return $model;

}



如果可以有一套完整的单表继承使用解决访问文档,就好了!!~~希望qiang给予指导

确实教程有点少

这个不需要教程啊。想想就有方法解决了。我前面不是说了吗?jerry应该也会了。