我在实体中定义了这个:
protected $_virtual = [ 'full_name' ];
protected function _getFullName()
{
return( $this->_properties['firstname'] . ' ' . $this->_properties['lastname'] );
}
但是,当表被称为关联表时,任何查询(paginator或find('all'))都不会检索full_name字段。
主表是GenPersons。 在这种情况下,该字段显示正确。 但后来我做了
$this->paginate = [ 'contain' => ['GenPersons'] ]
来自AerPilots控制器(AerPilots是一个型号);并尝试将该字段作为
$aerPilot->gen_person->full_name;
没有显示任何内容。
我忘记了什么吗?
答案 0 :(得分:0)
我找到了。 问题在于模型的关联。 GenPersons表属于General插件。 AerPilots表属于Aeronautical插件。 当我为AerPilots烘焙模型时,它生成了以下代码:
$this->belongsTo('GenPersons', [
'foreignKey' => 'gen_person_id',
'className' => '**Aeronautical**.GenPersons'
]);
一定是:
$this->belongsTo('GenPersons', [
'foreignKey' => 'gen_person_id',
'className' => '**General**.GenPersons'
]);