我有3个数据库表:书籍(id,title,author,...)和订单(id,book_id,user_id,...)和用户(id,name,username,...)我会喜欢获得给定用户订购的书籍的标题。
我使用query()方法准备了查询:
$this->set('user_orders', $this->Order->query("SELECT orders.id, orders.status,
(SELECT books.title FROM books WHERE books.id = orders.book_id) as `titles`
FROM orders WHERE orders.user_id = ".$this->Auth->user('id').""));
现在,我想使用find()方法获得相同的结果:
$this->set('user_orders', $this->Order->find('all', array(
'fields' => array(
'Order.id',
'status',
'Order.book_id',
'Book.title' => $this->Book->find('first',array(
'fields' => 'Book.title',
'conditions'=> array('Book.id = Order.id')
)),
),
'conditions' => array('user_id' => $this->Auth->user('id')))));
然而,它不起作用。应如何纠正以获得与上述代码相同的效果?
问候
答案 0 :(得分:0)
您可能需要阅读ContainableBehavior:http://book.cakephp.org/1.3/en/view/1323/Containable。
而且,正如Kaklon建议的那样:请更具体地说明什么是/不起作用......