CakePHP hasOne关联为非存在记录返回空字段数组

时间:2014-06-27 13:23:46

标签: mysql cakephp model-associations cakephp-2.5

拥有User和UserProfile模型。用户模型与UserProfile具有hasOne关联。 UserProfile mysql表为空。当我执行$ this-> User-> find(' all',array('包含' =>数组(' UserProfile')))一个空的UserProfile数组,正如您所期望的那样,我得到一个填充了与模式对应的空字段的数组:


Array
(
    [0] => Array
        (
            [User] => Array
                (
                    [id] => 1
                    [firstname] => Joe
                    [surname] => Bloggs
                    [email] => katie.barnes@scotlandsdna.com
                    [password] => $2a$10$re4r7AXWQcXgkKcabUqmtO6j.7p2bA1t2SLeG93eVsiDPBgGaeXRS
                    [enabled] => 1
                    [user_group_id] => 1
                    [created] => 2014-06-26 15:01:38
                    [modified] => 2014-06-26 15:01:38
                )

            [UserProfile] => Array
                (
                    [id] => 
                    [job_title] => 
                    [user_id] => 
                    [enabled] => 
                    [created] => 
                    [modified] => 
                )

        )

任何人都看过这个并知道如何修复它?!

1 个答案:

答案 0 :(得分:2)

这是正确的行为,因为hasOne关联不是可选的。如果您想使其成为可选项,请将其更改为hasMany,并且只创建一条记录。

Cake正在从LEFT JOINUser执行UserProfile,查询结果会为丢失的记录生成NULL个值。如果您在Cake之外的编辑器中执行SQL,则会得到相同的结果。