【问题标题】:Cakephp afterFind() helpCakephp afterFind() 帮助
【发布时间】:2010-10-27 06:29:48
【问题描述】:

我在数组中有这样的搜索结果

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] => 
                                        )

                        )

                )

        )

)

基本上移除了 Item 部分并将 User 提升了一个级别

【问题讨论】:

    标签: cakephp find cakephp-1.3


    【解决方案1】:

    我会说不要。除了你,没有人会看到或关心这个。改变模型数据的内部格式并没有真正的好处。相反,它只会导致问题。保持内部数据格式一致!

    您是使用$statusMessage['Item']['User'] 还是$statusMessage['User'] 访问用户信息并没有太大的区别。如果你坚持,我建议你通过查询中的items 表直接joinusers 表到status_messages 表,以放弃获取项目的额外步骤,Cake 会自动以您想要的方式格式化结果。

    【讨论】:

    • 哦,好的。我认为代码会变得丑陋,需要重构:D 谢谢。
    【解决方案2】:

    如果您想限制返回的关联表和/或字段,您应该查看Containable。当您返回一大堆您不需要的无趣的东西时,您可以通过将其“包含”到您想要的内容来稍微简化处理。

    但正如 Deceze 所说,不要纯粹为了美观而修剪它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多