2012-10-19 45 views
0

我試圖使用REST代理與ExtJS的4.1(煎茶建築師2),使用CakePHP,即在JSON數據返回,以便讀取JSON文件。在煎茶建築師2使用型號CakePHP的2 + REST(JSON視圖)

該數據不僅包含對象還包含關聯對象,書籍,BookCopy等

我應該如何創建商店和模型,以便能夠使用JSON在網格?現在它在Book列中顯示網格中的對象,這是我在商店中創建的一個字段(我使用自動列將商店的字段映射到網格)。

這是JSON(它是嵌套的數據也相關數據):

[ 
    { 
     "Book": { 
      "ISBN": "1660151266", 
      "title": "A Call to Arms ", 
      "author": "Loren L. Coleman ", 
      "pages": "44", 
      "book_copy_count": "10", 
      "book_available_count": "9", 
      "id": "66" 
     }, 
     "BookCopy": [ 
      { 
       "condition_id": "1", 
       "available": false, 
       "book_id": "66", 
       "id": "395", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "396", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "397", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "398", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "399", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "400", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "401", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "402", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "403", 
       "title": "A Call to Arms " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "66", 
       "id": "404", 
       "title": "A Call to Arms " 
      } 
     ] 
    }, 
{ 
     "Book": { 
      "ISBN": "1003581858", 
      "title": "Call of Duty ", 
      "author": "Blain Lee Pardoe ", 
      "pages": "52", 
      "book_copy_count": "6", 
      "book_available_count": "5", 
      "id": "58" 
     }, 
     "BookCopy": [ 
      { 
       "condition_id": "1", 
       "available": false, 
       "book_id": "58", 
       "id": "350", 
       "title": "Call of Duty " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "58", 
       "id": "351", 
       "title": "Call of Duty " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "58", 
       "id": "352", 
       "title": "Call of Duty " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "58", 
       "id": "353", 
       "title": "Call of Duty " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "58", 
       "id": "354", 
       "title": "Call of Duty " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "58", 
       "id": "355", 
       "title": "Call of Duty " 
      } 
     ] 
    }, 
    { 
     "Book": { 
      "ISBN": "1843871223", 
      "title": "Close Quarters ", 
      "author": "Victor Milan ", 
      "pages": "32", 
      "book_copy_count": "9", 
      "book_available_count": "9", 
      "id": "23" 
     }, 
     "BookCopy": [ 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "139", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "140", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "141", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "142", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "143", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "144", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "145", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "146", 
       "title": "Close Quarters " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "23", 
       "id": "147", 
       "title": "Close Quarters " 
      } 
     ] 
    }, 
    { 
     "Book": { 
      "ISBN": "1795387125", 
      "title": "D.R.T ", 
      "author": "James D. Long ", 
      "pages": "71", 
      "book_copy_count": "5", 
      "book_available_count": "5", 
      "id": "25" 
     }, 
     "BookCopy": [ 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "25", 
       "id": "156", 
       "title": "D.R.T " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "25", 
       "id": "157", 
       "title": "D.R.T " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "25", 
       "id": "158", 
       "title": "D.R.T " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "25", 
       "id": "159", 
       "title": "D.R.T " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "25", 
       "id": "160", 
       "title": "D.R.T " 
      } 
     ] 
    }, 
    { 
     "Book": { 
      "ISBN": "1401073348", 
      "title": "Dagger Point ", 
      "author": "Thomas Gressman ", 
      "pages": "46", 
      "book_copy_count": "10", 
      "book_available_count": "10", 
      "id": "48" 
     }, 
     "BookCopy": [ 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "295", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "296", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "297", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "298", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "299", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "300", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "301", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "302", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "303", 
       "title": "Dagger Point " 
      }, 
      { 
       "condition_id": "1", 
       "available": true, 
       "book_id": "48", 
       "id": "304", 
       "title": "Dagger Point " 
      } 
     ] 
    } 
] 

回答

1

你必須採取默認的ExtJS的代理配置和CakePHP的渲染。根據你的經驗,你可以寫你自己的ExtJS的把CakePHP,反之亦然transformes(見Hash class),或者你可以用番茶,它確實這一切爲您服務。尤其見http://banchaproject.org/using-sencha-architect-2.html

只要你的存儲與工作一起CakePHP的,你可以簡單地使用它和網格,列表,...

我希望這可以幫助,請隨時索要更多的細節:)

+0

感謝您的回覆羅蘭,我會檢查。 – JMHeap