1

ここで包含可能なコンポーネントとその他の質問に目を通しましたが、それが私を助けることができるようには見えません.

基本的に、paginate を 1 に設定すると、次のような結果が返されます。

Array
(
[0] => Array
(
    [ModelName1] => Array
    (
        [id] => 83
        [parent_id] => null
        [field1] => value1
    )

    [AssociatedModelName1] => Array
    (
        [id] => 1
        [field1] => value1
    )

    [children] => Array
    (
        [0] => Array
        (
            [ModelName] => Array
            (
                [id] => 42
                [parent_id] => 83
                [field1] => value1
                [field2] => value2
                [field3] => value3
            )

            [AssociatedModelName] => Array
            (
                [id] => 2
                [field1] => value1
                [field2] => value2
                [field3] => value3
            )

追加することで、 ModelName1 および AssociatedModelName1 のフィールドの出力を制限できます

$fields => array("ModelName1.field1") 

設定配列に。実際、これを DataTable プラグインのコンポーネント初期化の「列」に渡しますが、同じである必要があります。

ただし、非常に多くの子供がいて、各子供には多くのフィールドが含まれているため、各子供の「field2」のみを取得したいと思います。

どうすればそれを達成できますか?「Children.ModelName1」を指定すると、列が見つからないという SQL1054 エラーが発生します。

どんな手掛かり?

4

1 に答える 1

3

条件付き配列は、何らかの方法で使用する必要があります。

$this->paginate['Model'] = array(
    'contain' => array(
        'ChildModel' => array(
            'fields' => array('ChildModel.field1', 'Childmodel.field2'),
            'ChildChildModel' => array(
                'fields' => array('ChildChildModel.field1', 'ChildChildModel.field2'),
            )
        )
    )
);
于 2013-01-18T15:28:39.177 に答える