拥有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] => ) )
任何人都看过这个并知道如何修复它?!
答案 0 :(得分:2)
这是正确的行为,因为hasOne
关联不是可选的。如果您想使其成为可选项,请将其更改为hasMany
,并且只创建一条记录。
Cake正在从LEFT JOIN
到User
执行UserProfile
,查询结果会为丢失的记录生成NULL
个值。如果您在Cake之外的编辑器中执行SQL,则会得到相同的结果。