1

我在这里查看了可包含组件和其他问题,但看起来对我没有帮助。

基本上,我将分页设置为 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 Plugin的组件初始化的“列”,但是应该是一样的。

但是,由于有这么多的孩子,每个孩子都包含很多领域,我想只得到每个孩子的“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 回答