关于视图模型和关联模型的使用问题

浏览:780 发布日期:2013/09/10 分类:求助交流
各位大侠好,小弟又遇到问题了。

想请教tp是否可将视图模型和关联模型结合来使用的问题:

简单描述如下:
我现在有一个主数据表,记录一个项目的一些基本信息,里面有一些:
类别,状态,属性等的用int来存的字段,这些字段又跟其他相应的类别表,状态表,属性表关联。

然后还有一个副表,是记录这个项目对应的版本情况,简言之就是"一对多"的关系.

现在建好了一个关联模型: PmModelclass PmModel extends RelationModel{
    protected $_link = array(
      'pmdelivery' => array(  
        'mapping_type'=>HAS_MANY,
                    'foreign_key'=>'pmid',
                    'mapping_name'=>'pmdelivery',                  
       ),
    );
}
同时又建了一个视图模型: PmViewModelclass PmViewModel extends ViewModel {
    public $viewFields =  array(
       //项目主表
       'pm' => array('id','project','typeid','operationid','expire','statusid','update','_as'=>'p'),
    
       //项目运作方式
       'pmoperation' => array('operation','_as'=>'o','_on'=>'p.operationid=o.id'),
    
       //项目类型
       'pmtype' => array('type','_as'=>'t','_on'=>'p.typeid=t.id'),
    );
}
但是实例化模型的时候,该怎么写才既可以把视图模型包括进来,也可以把关联模型包括进来呢?

我现在这样实例化以后:$pm = new PmModel('pm');
        $pmlist = $pm->field('id,project,typeid,expire,operationid,operationid')->relation(true)->select();
就只包括了关联模型,没有包括视图模型,该怎么写才能达到如下dump的效果,就是说:type和operation的值是从视图模型中另外的关联表获取的.array(2) {
  [0] => array(6) {
    ["id"] => string(1) "1"
    ["project"] => string(23) "32所运维平台项目"
    ["type"] => string(5) "type1"
    ["expire"] => string(10) "2013/10/31"
    ["operation"] => string(18) "有合同的项目"
    ["pmdelivery"] => array(2) {
      [0] => array(4) {
        ["id"] => string(1) "1"
        ["pmid"] => string(1) "1"
        ["delivery"] => string(12) "OneCenter3.2"
        ["service"] => string(12) "二次开发"
      }
      [1] => array(4) {
        ["id"] => string(1) "2"
        ["pmid"] => string(1) "1"
        ["delivery"] => string(11) "MSCenter2.1"
        ["service"] => string(6) "部署"
      }
    }
  }
 ...
最佳答案
评论( 相关
后面还有条评论,点击查看>>