5

私はCakePHPを初めて使用し、Containableの動作でモデルクラスのread()メソッドを呼び出す方法を理解できません。find()で次のことができます

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

これは期待どおりに機能しますが、Tのすべてのインスタンスを取得するのではなく、代わりにid = $ idのインスタンスを取得して、「ビュー」ビューに渡すことができます。しかし、検索に渡された配列は、実行時に機能しません

$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)

これを行う方法はありますか?

4

2 に答える 2

16

read()呼び出しの前に設定することもできます。

$this->T->id = $id;
$this->T->contain(array(...));
$this->T->read();
于 2011-06-02T07:15:44.927 に答える
3

に適用されるように動作を設定できると思いますが、必要なデータがすべてである場合に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'
            )
        )
    )
);
于 2011-06-01T19:12:47.027 に答える