テーブルのカラムにないデータをEloquentのレスポンスに入れる

なんて言ったらいいかよくわからないけどタイトルみたいなことがしたいときどうするか

テーブルのデータそのものじゃなくてテーブルのデータから計算できるデータがあったとして、それをクライアントに計算させるんじゃなくてレスポンスに入れて返したいとかそんな時

普通にドキュメントに書いてあるけど、そういう時は Accessors と $appends ってのを使うとできる

Accessors は↓これ。で、 appends については同じページの一番下に書いてある

Eloquent ORM - Laravel - The PHP Framework For Web Artisans

$appendsEloquent を継承してるクラスのメンバ変数として定義しておく

class SomeModel extends Eloquent
{
    protected $table = 'some_table';
    protected $appends = array('some_append_data'); // ←これ

    // Accessors    
    public getSomeAppendDataAttribute()
    {
        return "something";
    }
}

こうすると、 SomeModel::find($id) とかで返ってくるデータに

    "some_append_data" =>  "something"

も一緒に入ってくる。