0

表是

buildings (id)
contacts(id)
building_administrators (id, building_id, contact_id)

型号是

Model_Building {
    protected $_has_many = array(
        'administrators' => array(
            'model' => 'Contact',
            'through' => 'building_administrators',
            'foreign_key' => 'building_id'          
        ),
    );
}

查询后$building->administrators->find_all();我得到错误: Unknown column 'building_administrators.administrator_id' in 'on clause' [ SELECT ..

有没有办法解决这个问题?

我可以通过将管理员别名重命名为联系人来解决它,但随后我必须进行查询,$building->contacts->find_all()这并不好(例如,也许我有一个管理部门和经纪人)。

我也可以在数据库表中将contact_id 重命名为administrator_id,但是数据库结构是错误的——我没有管理员表。

4

1 回答 1

1

尝试将'far_key' => 'contact_id', 添加到数组中。

一些背景:foreign_key是keyname$this对象在关系描述中,far_key是keyname外部对象在关系中

编辑:只是想添加 Kohana,如果缺少所需的键,则根据别名(http://kohanaframework.org/3.3/guide-api/ORM#get)猜测她自己的键名

于 2013-07-23T12:15:16.950 回答