CakePHP-是否可以将Containable行为与read()方法一起使用?

CakePHP-是否可以将Containable行为与read()方法一起使用?,cakephp,cakephp-1.3,containable,Cakephp,Cakephp 1.3,Containable,我是CakePHP新手,不知道如何使用可包含的行为调用模型类的read()方法。我可以使用find()执行以下操作 这和我预期的一样,但我不想得到t的所有实例,而是id=$id的实例,这样我就可以将它传递给“视图”视图。但是传递给find的数组在执行以下操作时不起作用 $this->T->read( array ( 'contain' => array ( 'C', 'L' => array (

我是CakePHP新手,不知道如何使用可包含的行为调用模型类的read()方法。我可以使用find()执行以下操作

这和我预期的一样,但我不想得到t的所有实例,而是id=$id的实例,这样我就可以将它传递给“视图”视图。但是传递给find的数组在执行以下操作时不起作用

$this->T->read(
array (
        'contain' => array (
            'C', 
            'L' => array (
                'fields' => array ('L.id, L.time'),
                'I' => array (
                    'fields' => array ('I.id','I.time'),
                    'J.name',
                    'J.id'
                )
            )
        )
, $id)

有没有办法做到这一点

我相信您可以设置行为,使其适用于
read()
,但如果您只需要数据,也可以使用
find('first')

$this->T->find( 'first', array (
    'conditions' => array(
        'T.id' => $id
    ),
    'contain' => array (
        'C', 
        'L' => array (
            'fields' => array ('L.id, L.time'),
            'I' => array (
                'fields' => array ('I.id','I.time'),
                'J.name',
                'J.id'
            )
        )
    )
);

也可以在read()调用之前设置:


我不明白你为什么接受这个,问题是“.使用read()方法的containable behavior”-这不是使用read()方法。@Gustavo:重新表述这个问题,解释你只是需要数据,而不是特别从model::read调用。因为find没有设置model->data变量使用find的效果(第一个)和read()不一样。如果他想要的只是将数据转移到视图中,那么find(first)解决方案很好,但正如Dunhamzzz所说的那样,问题要么需要纠正,以保持清晰性/与答案的关系,要么答案是错误的。如果我真的需要使用containable with model::read and find(first)不是一个好的解决方案,那么这将是一个毫无价值的搜索结果。套用我的上述评论,这个答案是对问题的正确答案,正如作者所说的是,我只想将数据移动到一个视图中。对不起,我没有正确地表达这个问题。现在修好了,谢谢,卡洛斯
$this->T->find( 'first', array (
    'conditions' => array(
        'T.id' => $id
    ),
    'contain' => array (
        'C', 
        'L' => array (
            'fields' => array ('L.id, L.time'),
            'I' => array (
                'fields' => array ('I.id','I.time'),
                'J.name',
                'J.id'
            )
        )
    )
);
$this->T->id = $id;
$this->T->contain(array(...));
$this->T->read();