2016-09-22 32 views
0

我是cakePHP的新手,在嘗試圍繞表工作時遇到了從兩個表中獲取特定colmns的問題。我想實現的是:CakePHP 3.3從連接表中獲取兩列

SELECT categories_1.category_id,categories_2.name FROM categories_1 JOIN categories_2 ON categories_2.category_id = categories_1.category_id 

我知道我可以做的:

$query=$this->Categories1->find('all')->contain(['Categories2']) 

但是這樣我得到整個表categoires_2作爲內部數組這使得結構法更加複雜,並增加了不必要的第二個表中的列。

我試過文檔以下,但代碼我想出了並未真正發揮作用:

$query=$this->Categories1->find('all') 
          ->select('Categories2.name','Categories1.category_id') 
          ->join([ 
            'table' => 'categories_2', 
            'alias' => 'Categories2', 
            'conditions' => array('Categories2.category_id' => 'Categories1.category_id')  
          ]); 

我將不勝感激幫助糾正代碼... 感謝

編輯: 該蛋糕正在生成以下sql代碼:

SELECT Categories2.name AS `Categories2__name` FROM categories_1 Categories1 INNER JOIN categories_2 Categories2 ON Categories2.category_id = :c0 
+0

順便說一下我在模型設定的關係Categories2 - >屬於關聯和Categories1這 - >的hasMany – user1857756

+0

你說的「不真正的工作」意味着什麼呢?當你描述錯誤信息或意外行爲時,請特別注意! – Shadow

+0

現在沒有錯誤,但結果爲空 – user1857756

回答

2

您可以指定要返回的字段

$query=$this->Categories1->find('all')->contain(
           ['Categories2' => [ 
            'fields' => ['field1', 'field2'] 
            ] 
           ] 
          ) 
+0

工作!感謝幫助! – user1857756