2014-01-13 60 views
0

我是Cakephp的新手,我沒有找到任何解決方案,我的問題。 我有三個表 - 藥品:Cakephp:如何連接模型,如果每個模型連接到其他一些外鍵

id|Name|company_id 

公司:

id|Name|city_id 

城市:

id|Name 

我必須選擇medicines.name,公司。名稱和城市艾米在哪裏ids匹配,所以 我如何通過Cakephp方法做到這一點。 我知道這個簡單的SQL查詢:

SELECT medicines.name, companies.name and cities.name FROM medicines, companies, cities WHERE medicines.company_id=companies.id AND companies.city_id=cities.id 

由於提前

回答

0

你試過讀的書?這是很好的解釋有:不同對象之間Associations: Linking Models Together

定義關係,在你的應用程序 應該是一個自然的過程。例如:在食譜數據庫中, 食譜可能有很多評論,評論有一個作者,並且作者可能有很多食譜。定義這些關係的工作方式 允許您以直觀而強大的方式訪問您的數據。從書中

例子:

class User extends AppModel { 
    public $hasOne = 'Profile'; 
    public $hasMany = array(
     'Recipe' => array(
      'className' => 'Recipe', 
      'conditions' => array('Recipe.approved' => '1'), 
      'order' => 'Recipe.created DESC' 
     ) 
    ); 
} 


class User extends AppModel { 
    public $hasMany = array(
     'MyRecipe' => array(
      'className' => 'Recipe', 
     ) 
    ); 
    public $hasAndBelongsToMany = array(
     'MemberOf' => array(
      'className' => 'Group', 
     ) 
    ); 
} 

class Group extends AppModel { 
    public $hasMany = array(
     'MyRecipe' => array(
      'className' => 'Recipe', 
     ) 
    ); 
    public $hasAndBelongsToMany = array(
     'Member' => array(
      'className' => 'User', 
     ) 
    ); 
} 
+0

謝謝,但我讀的書,我沒有找到一個妥善的解決辦法,雖然我能與表中的醫學模式的藥品和企業關係,企業和城市的關係belongsTo在公司模型中,但我想將單個查詢(模型)中的所有三個表聯繫起來 –

+0

@AshishTripathi您是否嘗試過在書中找到的內容?如果您設置了正確的關係,Cake會自動爲您添加表格。只需根據需要設置'遞歸'屬性即可。 – arilia

+0

感謝@arilia,bind和unbindmodel解決了我的問題。 –