如何在表A和C之间创建关系

时间:2014-03-05 00:45:40

标签: php yii

我有3个名为A,B和C的表。

Table A: id,
         B_id

Table B: id,
         C_id

Table C: id,
         *column 

a关于创建这样的关系知之甚少:

'tableB' => array(self::BELONGS_TO, 'B', 'B_id'),

如何在表A中创建关系以便我可以访问表C中的*column?我正在使用yii。谢谢!

2 个答案:

答案 0 :(得分:0)

您正在搜索此http://www.yiiframework.com/doc/guide/1.1/en/database.arr#relational-query-with-through 您应该能够定义从A到C到B的关系。

'tableB' => array(self::BELONGS_TO, 'B', 'B_id'),
'tableA' => array(self::BELONGS_TO, 'C', array('C_id'=>'id'),'through'=>'tableB'),

答案 1 :(得分:0)

虽然不确定,但在接受的答案中描述的逻辑方式给了我:
Property "CBelongsToRelation.through" is not defined.

对我有用的简单解决方法是在第二个关系中将BELONGS_TOHAS_ONE切换:

'tableB' => array(self::BELONGS_TO, 'B', 'B_id'),
'tableA' => array(self::HAS_ONE, 'C', array('C_id'=>'id'),'through'=>'tableB'),