CakePHP вложенный запрос выбора - PullRequest
2 голосов
/ 10 января 2012

У меня есть таблицы 3 дБ: книги (id, название, автор, ...) и заказы (id, book_id, user_id, ...) и пользователи (id, имя, имя пользователя, ...), и я быхотел бы получить названия книг, заказанных данным пользователем.

Я подготовил запрос с использованием метода 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 Ответ

0 голосов
/ 10 января 2012

Возможно, вы захотите прочитать о ContainableBehavior для этого: http://book.cakephp.org/1.3/en/view/1323/Containable.

И, как предположил Каклон: пожалуйста, уточните, что работает / не работает ...

...