谁一开始就是大神?

请问有没有办法,让gii生成的model的属性,与数据库中的字段名称不一样?[2.0]

大家好,有表user,字段:name。
直接使用gii生成model,user->name.可以进行设置,然后user->save();等等。
请问如果这个时候修改了数据库的字段名称,是否可以 不改变属性名name的情况下,还能继续使用这个model的AR操作呢?
我尝试了。

public function attributes()
{
    return [
        'cn_name'=>'name'
    ]
}

设置后,程序是没有错的,但是当然save的操作时,就会提示表user中不包含name的列(确实不存在,因为已经修改为cn_name了)。
不知道有什么办法可以解决?

实在不想整个项目全部去修改namne 为 新的 cn_name?

你上面的修改不是对字段映射的修改,而且修改的字段的标签,这个标签一般用在表单中。
可以这样试一下:
在model中增加成员变量,public $cn_name;
在beforeSave时,传递成员变量的值 $this->name = $this->cn_name;
记得$name用private

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 请问有没有办法,让gii生成的model的属性,与数据库中的字段名称不一样?[2.0]

评论 抢沙发

登录

找回密码

注册