CakePHP在主结果数组中返回hasOne关系

时间:2013-10-01 05:29:33

标签: php cakephp

我在CakePHP中有一个模型类定义如下:

class Programme extends AppModel {
    public $hasOne = array(
        'ProgrammeLikes' => array(
        'className' => 'ProgrammeLikes',
        'fields' => array('likes'));
}

从数据库中检索我的模型时,它们将作为一个数组返回,其数组键入“Program”,另一个数组键入“ProgrammeLikes”(正确包含“likes”值)。为了减少现有代码所需的更改,我希望'likes'值在'Program'数组中。

这可能吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

在这里使用virtualFields来完成这件事。

class Programme extends AppModel {
    public $hasOne = array(
        'ProgrammeLikes' => array(
        'className' => 'ProgrammeLikes',
        'fields' => array('likes')
    );

    public $virtualFields = array(
        'likes' => 'SELECT likes FROM programme_likes AS ProgrammeLikes WHERE ProgrammeLikes.id = Programme.programme_likes_id'
    ); 
    // Where programme_likes_id is the foriegnkey for Programme model

}

注意:我认为programme_likesProgrammeLikes模型的表名,而programme_likes_id是foriegnkey for Programme模型,因此您可以按自己的方式安排符合您要求的查询。