0

JSON を返すデータのビューを持つ CakePHP を使用して、ExtJS 4.1 (Sencha Architect 2) で REST プロキシを使用して JSON ファイルを読み込もうとしています。

このデータには、オブジェクトだけでなく、関連するオブジェクト、Book、BookCopy なども含まれます。

Grid で 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 "
            }
        ]
    }
]
4

1 に答える 1

1

デフォルトのExtJSプロキシ構成とCakePHPのレンダリングを採用する必要があります。経験に応じて、ExtJSからCakePHPへ、またはその逆の独自の変換を作成するか(Hashクラスを参照)、Banchaを使用して、これらすべてを実行できます。特にhttp://banchaproject.org/using-sencha-architect-2.htmlを参照してください

ストアがCakePHPと連携するとすぐに、グリッド、リストなどに使用できます。

これがお役に立てば幸いです。詳細についてはお気軽にお問い合わせください:)

于 2013-01-06T02:39:17.657 に答える