2009-12-22 37 views
8

我使用Kohana v3和ORM,我有两个模型,Model_AModel_B通过一个数据透视表(有一个额外的列)的“has_many”相关。我可以使用add()函数的第三个参数将数据保存在数据透视表中的该列中,但我无法弄清楚如何使用ORM读取该列。Kohana 3.0.x ORM:读取数据透视表中的其他列

任何想法?提前致谢。

回答

8

如果您想要访问附加列,您需要创建一个基于该数据透视表的模型,假设我们将其命名为Model_A_B

class Model_A_B extends ORM { 

    protected $_belongs_to = array(
     'A' => array(), 
     'B' => array() 
    ); 

} 

然后,如果$aModel_A$b一个实例是Model_B一个实例,我们通过调用得到Model_A_B实例:

$ab = ORM::factory('A_B', array('A_id' => $a, 'B_id' => $b)); 

if ($ab->loaded()) { 
    // do stuff 
} 
+0

你展示来检索枢轴值,但你是否也可以展示一种方法来初始设置数据透视中的值? – Luke 2011-02-07 02:47:10

+0

你会在哪里存储该模型? ... models/a/b.php? – Brenden 2012-01-26 18:24:52

+0

@Brenden:是的,models/a/b.php – dusan 2012-07-20 15:10:33

相关问题