Laravel 4 Eloquent Column Alias

То, что я пытаюсь достичь, в моей базе данных, у меня есть таблица с именем канал, который я использую laravel 'Красноречивый класс для доступа к этим свойствам из таблицы Проблема, с которой я сталкиваюсь, заключается в том, что

имя таблицы - столбец, а имя столбца - канал.

поэтому при доступе к этому свойству это выглядит так.

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

Как я могу изменить это, чтобы сказать

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

Мы не можем изменить имя таблицы в базе данных.

Варианты, о которых я думал:

1) Создайте представления для таблиц, которым нужно изменить столбцы. Слишком грязный...

2) Использовать псевдоним столбца .... документация laravel ... вздох .. без понятия как?

3) Используйте набор свойств с функцией create_function, который вызовет this->канал, но я уверен, что он победилне работает, потому что Laravel использует динамические свойства. и когда этоs заполнить в массиве, я уверен, что он меняет его на имя столбца.

Я мог бы в своей функции own_to / hasOne / hasMany изменить свойство на псевдоним имени, которое я хочу использовать, чтобы позже я мог его изменить. я не знаю, насколько хорошо это будет работать ..

Какие-нибудь мысли? очень признателен

Ответы на вопрос(1)

вероятно, могли бы сделать это легко с Аксессорами / Мутаторами.

class Channel extends Eloquent {

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

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

}
СсылкаLaravel Accessors & Мутаторы
 Leo Medeiros29 окт. 2013 г., 13:55
Я проверил, и это работает прекрасно. Потрясающие!

Ваш ответ на вопрос