Laravel 4 Eloquent列别名

5
我想要实现的是,在我的数据库中有一个名为“channel”的表。我正在使用Laravel的Eloquent类来访问该表的属性。我遇到的问题是,表名为“column”,而列名为“channel”。因此,在访问该属性时,需要像这样进行访问。
User::find(1)->channel->channel

我该如何修改这个以表达意思

User::find(1)->channel->name

我们无法更改数据库中的表名。
我想到的选项有:
1)为需要更改列的表创建视图。但这样会变得混乱不堪...
2)使用列别名... Laravel文档...哎呀..我不知道怎么用?
3)使用create_function设置的属性,将调用this->channel,但我相信它不会起作用,因为Laravel使用动态属性。而且当它在数组中填写时,我相信它会将其更改为列的名称。
在我的belongs_to / hasOne / hasMany函数中,我可以将属性更改为我想要使用的名称的别名,以便以后可以更改它。我不知道那样会有多好...
你有什么想法吗?非常感谢。
1个回答

13

你可能可以轻松地使用 Accessors / Mutators 实现它。

class Channel extends Eloquent {

    public function getNameAttribute()
    {
        return $this->attributes['channel'];
    }

    public function setNameAttribute($value)
    {
        $this->attributes['channel'] = $value;
    }

}

参考资料


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接