0

私は次のモデルを持っています:

Client hasMany Loan
Loan belongsTo Book
Loan belongsTo Client
Book belongsTo BookType

そして、私のテーブルは次のようになります。

clients { id, name, ... }
loans { id, client_id, book_id }
books { id, book_type_id }
book_types { id, title }

クライアントの ID ですべてのローンを検索したいと考えています。これは私が試したものです:

$client = $this->Client->find('first', array(
    'conditions' => array(
        'Client.id' => $id
    ),
    'contain' => array(
        'Loan' => array(
            'Book' => array(
                'BookType' => array(
                    'order' => 'sachtitel DESC'
                )
            )
        )
    )
));

これは期待どおりに機能しません。データが希望どおりに並べ替えられていません。

私は何を間違っていますか?

編集:どうやら、私がcontains を使用している限り、順序を使用できないようです。CakePHP はデータを取得するために複数のクエリを生成するためですしたがって、CakePHP によって生成されたクエリによって 1 行しかフェッチされないため、私の注文は役に立ちません。テーブルからデータを取得するには、結合をどのように使用しますか?

4

1 に答える 1