分享1.0.x迁移到1.1.0中遇到的问题及解决办法,随时更新

刚才试验性的将项目迁移到1.1.0版本,遇到几个问题跟大家分享,对想迁移到1.1.0版的朋友可能会有所帮助。

另外也欢迎大家分享自己的迁移经验,让后来的朋友少走弯路。

下面是我目前遇到的两个问题,比较典型。

AR消除二义性的变动

在两个表做with操作时,1.0.x可以在sql语句中用??或直接写表名来指明字段所属的表,而1.1.0变为用t表示主表,with里的变量名(关系引用名)表示其他表

详情请看 http://www.yiiframework.com/doc/guide/database.arr 中Disambiguating Column Names一节

CModel.validate()方法的变化

1.0.x的中,该方法的原型为

public boolean validate(string $scenario=’’, array $attributes=NULL)

http://www.yiiframework.com/doc/api/1.0.11/CModel#validate-detail

1.1.0中,该方法的原型为

public boolean validate(array $attributes=NULL)

http://www.yiiframework.com/doc/api/CModel#validate-detail

1.0.x中的使用方法通常是

$userForm->validate(‘login’);

到1.1.0里就不能这么用了,可以用如下方式代替

$userForm->scenario = ‘login’;

$userForm->validate();

new的时候就可以直接指定了




$userForm = new UserForm('login');

$userForm->validate();



这个方式还真没注意到,谢谢分享。