2013-02-03 34 views
0

我試圖建立我的「homes」表和「furniture」表之間的關聯。PHP ActiveRecord與橋表

基本上,一個家庭可以擁有多個傢俱,所以我有一個home_furniture_bridge表看起來像這樣:

home_id | furniture_id 

顯然,與家裏home_furniture_bridge的關係是不相關的,它是家庭和傢俱之間的關係是事項。這個關聯如何在PHP ActiveRecord中描述?

編輯:目前我有一個home.php模型和一個furniture.php模型。我不需要一個home_furniture_bridge模型嗎?

回答

1

爲了使用這個很多-to-many關聯,你需要定義第三模型和模型中的一個使用has_manythrough語法:你必須使用類名

class Home extends ActiveRecord\Model { 
    static $has_many = array(
      array('home_furniture_bridge', 'class_name' => 'HomeFurnitureBridge'), 
      array('furniture', 'class_name' => 'Furniture', 'through' => 'home_furniture_bridge') 
    ); 
} 

class HomeFurnitureBridge extends ActiveRecord\Model { 
    static $belongs_to = array(
      array('home'), 
      array('furniture', 'class_name' => 'Furniture') 
    ); 
} 

class Furniture extends ActiveRecord\Model { 
    static $has_many = array(
      array('homes') 
    ); 
} 

注你的home_furniture_bridgefurniture,因爲PHP AR使用複數/單數約定表和類名稱。