我有3个数据库表:书籍(id,title,author,...)和订单(id,book_id,user_id,...)和用户(id,name,username,...)我希望得到给定用户订购的书籍的 Headers .
我使用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')))));
但是,它不起作用 . 应如何纠正以获得与上述代码相同的效果?
问候
1 回答
您可能想要读取ContainableBehavior:http://book.cakephp.org/1.3/en/view/1323/Containable .
并且,正如Kaklon建议的那样:请更具体地说明什么是/不起作用......