MANY_MANY的奇怪现象

不知道是不是其它地方写得不对,发现在使用self::MANY_MANY的时候,有个奇怪现象

有3个表,Users、Projects、UsersProjects、它们是多对多关系,

models/Projects.php的relations()里面,

'user'=>array(


		self::MANY_MANY,


		'Users',


		'UsersProjects([color="#FF0000"]projectId, userId[/color])',


	),





'user'=>array(


		self::MANY_MANY,


		'Users',


		'UsersProjects([color="#FF0000"]userId, projectId[/color])',


	),

注意红色部分,如果用下面部分进行查询,结果是错误的,如果用上面部分进行查询,结果才正确,也就是说,[color="#0000FF"]在Projects里面,要把projectId放到前面[/color],才正确。

我其它地方有写错? 这是特色? Bug?

应该是有顺序的吧,第一个应该写本表,第二外写关联表,你在project模型中,应该projectid应该在前面

是啊,所以我才问,

我其它地方有写错? 这是特色? Bug?

这是因为你没有在数据库里定义外键约束,所以Yii只能安装你列的次序选择匹配了:主表的列在前,外表的列在后。

多谢强哥的回答,

原来是因为外键约束的原因,看来Yii真的强大啊~~~

我的数据库用MyIsam,所以没有用到外键,

anyway, thx~ :P