【问题标题】:How to change the structure of the models in a collection from a database如何更改数据库集合中模型的结构
【发布时间】:2014-03-20 12:02:53
【问题描述】:

所以,这是我用来获取数据的方法:

    $app->get('/people', 'getPeople');

    function getPeople(){
        $sql = "SELECT * FROM people";    
        try {
            $db = getConnection();
            $stmt = $db->query($sql);
            $entries = $stmt->fetchAll(PDO::FETCH_OBJ);
            $db = null;
            echo json_encode($entries);
        } catch(PDOException $e) {
            echo '{"error":{"text":'. $e->getMessage() .'}}';
        }

这是我的集合 (testsite.local/api/index.php/people) 的输出,看起来像这样:

    [
        {
            "month":"January",
            "week":"week1",
            "day":"monday",
            "photo":"pic.jpg",
            "name":"Mona Lisa"
        },
        {
            "month":"January",
            "week":"week2",
            "day":"monday",
            "photo":"pic.jpg",
            "name":"Michael Angelo"
        },
        {
            "month":"February",
            "week":"week1",
            "day":"tuesday",
            "photo":"pic.jpg",
            "name":"Da Vinci"
        }
    ]

所以我的问题是,我应该在哪里编辑什么内容才能使输出变成这样?? (这甚至可能吗?)

    [
        {
            "month":[
                {
                    "January":[
                        {
                            "week1":[
                                {
                                    "day":"monday",
                                    "photo":"pic.jpg",
                                    "name":"Mona Lisa"
                                }
                            ],
                            "week2":[
                                {
                                    "day":"monday",
                                    "photo":"pic.jpg",
                                    "name":"Michael Angelo"
                                }
                            ]
                        }
                    ],
                    "February":[
                        {
                            "week1":[
                                {
                                    "day":"tuesday",
                                    "photo":"pic.jpg",
                                    "name":"Da Vinci"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]

我对此很陌生,我真的无法弄清楚..提前谢谢:)

【问题讨论】:

    标签: php json backbone.js backbone.js-collections


    【解决方案1】:

    我想这可能有用

        <?php
             $newArray = array();
             foreach($entries as $key => $entry){
    
             if($key === 'month'){
                 $newArray[$key][$entry][$entries['week']] = array($entries->day,$entries->photo,$entries->name) 
             }
         }
    
         echo json_encode($newArray);
    

    【讨论】:

      【解决方案2】:

      在将 API 响应发送到视图之前,您始终可以使用 parse() 函数对其进行任何处理:

      var PeopleCollection = Backbone.Collection.extend({
          url: '/people',
          parse: function(data) {
              // do some processing
              return data;
          }
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-21
        • 2015-01-19
        • 2021-05-23
        • 1970-01-01
        相关资源
        最近更新 更多