2016-11-10 6 views
1

私はWorkpositionモデルを持っています。 belongsTo関係を持つOrdersを持つデータベースにリンクされています。ですから、注文モデルに関連する条件を特定の作業位置で見つける必要があります。私は、例えば使用する場合ので、一種の見つけ吸う:検索クエリの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不明な列「アレイ」(文字列への変換アレイ)。したがって、findメソッドがOrderを見たときに、Orderモデルのバインディングなしにそれがundestandsしている間に、idの配列をundestandしません。

+0

あなたはこの –

+0

@MdHasiburRahamanでオーダーモデルをバインドする必要があると思います。私はいくつかのコードを追加しました。それは助けにはならない – Vladislav

答えて

0

結合条件は、キー=>値ではなく、配列値でなければなりません。アレイは

'OrdergroupsOrder.ordergroup_id = $ordergroup_ids', 

$をordergroup_idsにライン

'OrdergroupsOrder.ordergroup_id' => $ordergroup_ids, 

を変更してみているのですか?単一のIDを使用してみてください。

関連する問題