0

我正在尝试建立我的“ homes”表和“ furniture”表之间的关联。

基本上,一个家可以有多个家具,所以我有一个 home_furniture_bridge 表,如下所示:

home_id | furniture_id

显然,home_furniture_bridge 与 home 的关系是无关紧要的,重要的是 home 和家具之间的关系。在 PHP ActiveRecord 中如何描述这种关联?

编辑:目前我有一个 home.php 模型和一个家具.php 模型。我不需要 home_furniture_bridge 模型吗?

4

1 回答 1

1

为了使用这种多对多关联,您需要定义第 3 个模型并使用has_many through其中一个模型中的语法:

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_bridgeand使用类名furniture,因为 php AR 使用表和类名的复数/单数约定。

于 2013-02-04T10:38:47.187 回答