【问题标题】:Laravel 4 Eloquent Column AliasLaravel 4 雄辩的列别名
【发布时间】:2013-06-15 00:27:57
【问题描述】:

我想要实现的是在我的数据库中我有一个名为 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 函数中将属性更改为我想要使用的名称的别名,以便稍后我可以更改它。我不知道这会有多好..

有什么想法吗? 非常感谢

【问题讨论】:

    标签: php view laravel column-alias


    【解决方案1】:

    您可以使用 Accessors / Mutators 轻松做到这一点。

    class Channel extends Eloquent {
    
        public function getNameAttribute()
        {
            return $this->attributes['channel'];
        }
    
        public function setNameAttribute($value)
        {
            $this->attributes['channel'] = $value;
        }
    
    }
    

    参考

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-09
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多