您好,我正在尝试从另一个表中获取一些引用数据,
数据结构:
表PartDetail
-id
-OperationTypeID(外键)
-DateAdded
表OperationType
-id
-Description
我正在尝试这样的东西:
$crud = $this->add('MVCGrid', array('allow_edit'=>false));
$crud->setModel('Model_PartDetail',array('DateAdded'));
但是,我希望看到表OperationType中的“描述”,因为在我的PartDetail模型上,我这样声明了我的关系:
$this->hasOne('OperationType','OperationTypeID','Description') ->mandatory(true)
`->caption('Operation Type');`
例如,在本例中,我希望查看表OperationType中的描述
我试过了:$crud->setModel('Model_PartDetail',array('DateAdded','OperationType'));
但不起作用,仅适用于:$crud->setModel('Model_PartDetail',array('DateAdded','OperationTypeID'));
但我只得到了身份证号码,而不是描述。
这是如何工作的?
发布于 2013-07-20 00:14:58
我能够解决这个问题。
在模型上,您需要将其重新定义为
$ref = $this->add('Field_Reference', 'OperationTypeID');
$ref->dereferenced_field='OperationTypeDescription';
$m = $this->add('Model_OperationType');
$m->addField('D'); // <-- actually seems that this line is not working
$ref->setModel($m, 'Description');
然后在页面中,您可以实际添加为OperationTypeDescription:
$crud->setModel('Model_PartDetail', array('DateAdded', 'OperationTypeDescription'));
https://stackoverflow.com/questions/17734447
复制相似问题