5

私が達成しようとしているのは、データベースにchannelという名前のテーブルがあることです。laravelの雄弁なクラスを使用して、テーブルからこれらのプロパティにアクセスしています。私が直面している問題は

テーブル名は column で、列名は channel です

そのプロパティにアクセスすると、次のようになります。

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

これを変更するにはどうすればよいですか

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

データベース内のテーブル名を変更することはできません。

私が考えたオプション:

1)列の変更が必要なテーブルのビューを作成します。雑すぎる…

2)列エイリアスを使用する....laravelドキュメント...ため息..どうやって手がかりがありませんか?

3)this->channelを呼び出すcreate_functionでプロパティセットを使用しますが、laravelは動的プロパティを使用しているため、機能しないと確信しています。配列に入力すると、列の名前に変更されると確信しています。

後で変更できるように、begs_to/hasOne/hasMany 関数でプロパティを使用したい名前のエイリアスに変更できます。それがどれほどうまくいくかわかりません..

何かご意見は?とても有難い

4

1 に答える 1

13

アクセサー/ミューテーターを使用すると、おそらく簡単に実行できます。

class Channel extends Eloquent {

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

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

}

参照

于 2013-06-19T13:27:16.013 に答える