2014-06-27 53 views
1

擁有User和UserProfile模型。用戶模型與UserProfile有一個關聯。 UserProfile mysql表是空的。當我做$ this-> User-> find('all',array('contains'=> array('UserProfile'))),而不是一個空的UserProfile數組時,我會得到一個數組字段對應架構:CakePHP hasOne關聯返回空字段數組,用於不存在的記錄

 

Array 
(
    [0] => Array 
     (
      [User] => Array 
       (
        [id] => 1 
        [firstname] => Joe 
        [surname] => Bloggs 
        [email] => [email protected] 
        [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] => 
       ) 

     ) 

任何人都看到了這一點,並知道如何解決它?

回答

2

這是正確的行爲,因爲hasOne協會是不是可選。如果您想使其成爲可選項,請將其更改爲hasMany,並且只創建一條記錄。

Cake正在執行從User到到UserProfile,並且查詢結果爲缺少的記錄生成了NULL值。如果您在Cake之外的編輯器中執行SQL,則會得到相同的結果。

+1

謝謝馬修。 – Progredi