2010-10-27 64 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所说,不要修剪纯粹是为了美观。