Cakephp 3.5 - 实体 - 虚拟字段未显示

时间:2017-09-02 23:57:06

标签: cakephp field virtual

我在实体中定义了这个:

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;
没有显示任何内容。

我忘记了什么吗?

1 个答案:

答案 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'
    ]);