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

0

在创建关系时定义顺序。尝试这样的事情:

$this->Book->bindModel(array(
    'belongsTo' => array(
       'BookType' => array('order' => 'sachtitel DESC' )
));
于 2013-04-25T13:04:58.290 回答