2016-11-10 5 views
1

У меня есть модель работы. Он связан в базе данных с Приказом с отношением sort. Итак, мне нужно найти конкретные рабочие условия, условия, связанные с моделью Заказов. Так, когда я использую, например, сосут вид поиска:CakePHP join tables in find query

$workpositions = $this->Workposition->find('all', array(
       'conditions' => array(
         'Order.type' => 'N' 
       ) 
)); 

CakePHP понять Order.id обозначения. Но когда я пытаюсь использовать объединение таблиц:

$workpositions = $this->Workposition->find('all', array(
       'conditions' => array(
         'Order.type' => 'N' 
       ) 
       'joins' => array(
         array('table' => 'ordergroups_orders', 
          'alias' => 'OrdergroupsOrder', 
          'type' => 'INNER', 
          'conditions' => array(
            'Order.id = OrdergroupsOrder.order_id', 
            'OrdergroupsOrder.ordergroup_id' => '3',          
          ) 
        )    
     ))); 

Это дает мне ошибку: Column not found: 1054 Unknown column 'Order.id' in 'on clause'. Поэтому он не понимает Order.id обозначение. В чем проблема?

Я пытался также сделать что-то вроде этого:

$workpositions = $this->Workposition->find('all', array(
       'conditions' => $conditions, 
       'joins' => array(
        array('table' => 'orders', 
         'alias' => 'Orders', 
         'type' => 'INNER', 
        ), 
        array('table' => 'ordergroups_orders', 
          'alias' => 'OrdergroupsOrder', 
          'type' => 'INNER', 
          'conditions' => array(
            'Orders.id = OrdergroupsOrder.order_id', 
            'OrdergroupsOrder.ordergroup_id' => $ordergroup_ids,          
          ) 
        ) 
     ))); 

Но я получаю столбец ошибки не найден: 1054 Неизвестный столбец «Массив» в «на пункте» (массив для преобразования строки). Таким образом, он не выделяет и массив идентификаторов, в то время как он выделяет его без привязки модели Order, когда метод find видит Order.

+0

Я думаю, вам нужно связать модель заказа с этим –

+0

@MdHasiburRahaman, я добавил код. Это не помогает – Vladislav

ответ

0

Условиями соединения должны быть значение массива, а не значение ключа =>.

Попробуйте изменить линию

'OrdergroupsOrder.ordergroup_id' => $ordergroup_ids, 

в

'OrdergroupsOrder.ordergroup_id = $ordergroup_ids', 

$ ordergroup_ids является массив? Попробуйте использовать один идентификатор.

 Смежные вопросы

  • Нет связанных вопросов^_^