2016-11-10 96 views
1

我有工作位置模型。它与数据库中的Orders和belongsTo关系相关联。所以,我需要找到与订单模型相关的条件的具体工作位置。所以,当我使用例如吸类的发现:查找查询中的CakePHP连接表

$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未知列“阵”。因此,它不会拒绝我的ID数组,而它在没有订购模型的绑定的情况下将其取消,当查找方法看到订单时。

+0

我认为你必须绑定Order模型与 –

+0

@MdHasiburRahaman,我添加了一些代码。它没有帮助 – Vladislav

回答

0

连接条件必须是数组值,而不是key => value。

尝试更改线路

'OrdergroupsOrder.ordergroup_id' => $ordergroup_ids, 

'OrdergroupsOrder.ordergroup_id = $ordergroup_ids', 

$ ordergroup_ids是一个数组?尝试使用一个单一的ID。