qq71151461
(Qq71151461)
1
现有ModelA BELONGSTO ModelB
其主键名均为id
ModelB出于特殊原因需要过滤id<>1,所以我在defaultScope里写上
return array(
'condition'=>"id<>1",
);
现在的问题是,如果读取ModelA时,直接with(ModelB),会出现
Column ‘id’ in on clause is ambiguous 错误。
那我在这个defaultScope条件里到底是写t.id<>1还是写ModelB.id<>1合适呢?
qq71151461
(Qq71151461)
3
sharehua你这个答案太那个啦,我要知道我就不提问了
请你帮帮忙,谢谢。
ModelA 里肯定也是有id做为主键的
根据我的提问,请问ModelB的defaultScope该怎么写。
qq71151461
(Qq71151461)
4
谢谢 sharehua 的帮助,问题已经解决
主要是alias引起的
解决如下,在defaultScope里
$alias = $this->getTableAlias(false,false);
return array(
'condition'=>"{$alias}.id<>1",
);
看来defaultScope里都应该这么写,不然关联时,总会出现这样或那样的问题