DavidHHuan
(Davidhhuan)
1
不知道是不是其它地方写得不对,发现在使用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?
hreriam
(Likehere2008)
2
应该是有顺序的吧,第一个应该写本表,第二外写关联表,你在project模型中,应该projectid应该在前面
qiang
(Qiang Xue)
4
这是因为你没有在数据库里定义外键约束,所以Yii只能安装你列的次序选择匹配了:主表的列在前,外表的列在后。
DavidHHuan
(Davidhhuan)
5
多谢强哥的回答,
原来是因为外键约束的原因,看来Yii真的强大啊~~~
我的数据库用MyIsam,所以没有用到外键,
anyway, thx~ 