2013-04-25 22 views
0

我有以下型号:CakePHP中发现含有具有深厚的订单

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' 
       ) 
      ) 
     ) 
    ) 
)); 

这并不像预期的那样工作。我的数据没有按照我的意愿排序。

我在做什么错?

编辑:好吧,看来,只要我使用包含,我不能使用的顺序,因为CakePHP的产生多个查询来获取数据。因此,我的订单是无用的,因为CakePHP生成的查询仅获取一行。 如何使用连接从表中获取数据?

+1

“我的数据没有按照我希望的那样排序”。 - 请澄清 - 你想要什么,以及这与你所得到的有什么不同。 – Dave 2013-04-25 14:15:08

回答

0

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

$this->Book->bindModel(array(
    'belongsTo' => array(
     'BookType' => array('order' => 'sachtitel DESC') 
));