2010-10-27 59 views
1

我有一個搜索結果是這樣一個數組CakePHP的一個afterFind()幫助

Array 
(
    [0] => Array 
     (
      [StatusMessage] => Array 
       (
        [id] => 1 
        [pid] => 0 
        [message] => First Status Message 
        [item_id] => 1 
        [commenters_item_id] => 2 
        [created] => 2010-10-26 02:09:05 
        [modified] => 2010-10-26 02:09:09 
       ) 

      [Item] => Array 
       (
        [id] => 1 
        [module_id] => 1 
        [item_id] => 1 
        [User] => Array 
         (
          [id] => 1 
          [first_name] => Harsha 
          [last_name] => Vantagudi 
          [username] => harshamv 
          [file] => 
         ) 

       ) 

      [StatusMessageReply] => Array 
       (
        [0] => Array 
         (
          [id] => 2 
          [pid] => 1 
          [message] => Second Status Message 
          [item_id] => 1 
          [commenters_item_id] => 1 
          [created] => 2010-10-26 02:09:05 
          [modified] => 2010-10-26 02:09:09 
          [Item] => Array 
           (
            [id] => 1 
            [module_id] => 1 
            [item_id] => 1 
            [User] => Array 
             (
              [id] => 1 
              [first_name] => Harsha 
              [last_name] => Vantagudi 
              [username] => harshamv 
              [file] => 
             ) 

           ) 

         ) 

       ) 

     ) 

) 

我想修改它,使其通過陣列

Array 
(
    [0] => Array 
     (
      [StatusMessage] => Array 
       (
        [id] => 1 
        [pid] => 0 
        [message] => First Status Message 
        [item_id] => 1 
        [commenters_item_id] => 2 
        [created] => 2010-10-26 02:09:05 
        [modified] => 2010-10-26 02:09:09 
       ) 

        [User] => Array 
         (
          [id] => 1 
          [first_name] => Harsha 
          [last_name] => Vantagudi 
          [username] => harshamv 
          [file] => 
         ) 

      [StatusMessageReply] => Array 
       (
        [0] => Array 
         (
          [id] => 2 
          [pid] => 1 
          [message] => Second Status Message 
          [item_id] => 1 
          [commenters_item_id] => 1 
          [created] => 2010-10-26 02:09:05 
          [modified] => 2010-10-26 02:09:09 
            [User] => Array 
             (
              [id] => 1 
              [first_name] => Harsha 
              [last_name] => Vantagudi 
              [username] => harshamv 
              [file] => 
             ) 

         ) 

       ) 

     ) 

) 

去除某些事情看起來有點漂亮Bascially刪除項目的一部分和移動用戶上一級

回答

4

我會說不要。除了你,沒有人會看到或關心這個。改變模型數據的內部格式並沒有真正的好處。相反,它只會導致問題。保持內部數據格式的一致性!

您是否使用$statusMessage['Item']['User']$statusMessage['User']訪問用戶信息確實沒有多大區別。如果你堅持它雖然,我建議你通過items表查詢放棄獲取該項目的額外的步驟,直接joinusers表到status_messages表,蛋糕會自動格式化結果你想要的方式。

+0

哦,好的。我認爲代碼會變得醜陋,需要重構:D謝謝。 – 2010-10-27 06:42:40

1

如果要限制返回你應該看看Containable相關表格和或字段。當你有一大堆不需要的無趣東西時,你可以通過將它「包含」到你想要的東西來簡化處理過程。

但正如Deceze所說,不要修剪純粹是爲了美觀。