【问题标题】:CakePHP return hasOne relationships within main result arrayCakePHP 在主结果数组中返回 hasOne 关系
【发布时间】:2013-10-07 04:00:16
【问题描述】:

我在 CakePHP 中有一个这样定义的模型类:

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

当从数据库中检索我的模型时,它们会作为一个数组返回,其中一个数组键控为“Programme”,一个单独的数组键控为“ProgrammeLikes”(正确包含“likes”值)。为了减少对现有代码的必要更改,我希望 'likes' 值位于 'Pr​​ogramme' 数组中。

这可能吗?

提前致谢

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

    在这里使用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_idProgramme 模型,因此您可以按照自己的方式安排查询以满足您的要求。

    【讨论】:

    • 如果您有任何疑问或疑虑,请告诉我
    • 谢谢阿尼尔。工作一种享受。
    • 很高兴能帮助你罗素
    猜你喜欢
    • 2020-11-26
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2021-08-15
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多