想请教tp是否可将视图模型和关联模型结合来使用的问题:
简单描述如下:
我现在有一个主数据表,记录一个项目的一些基本信息,里面有一些:
类别,状态,属性等的用int来存的字段,这些字段又跟其他相应的类别表,状态表,属性表关联。
然后还有一个副表,是记录这个项目对应的版本情况,简言之就是"一对多"的关系.
现在建好了一个关联模型: PmModel
class 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) "部署"
}
}
}
... 最佳答案