人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

Laravelのモデル(Eloquent)の結果セット(Collection)に任意のカラムを追加する

● Laravelのモデルの結果セットに「任意のカラム」を追加する

Laravelのモデル(Eloquent)の結果セット(Collection)に任意のカラムを追加するには map() を使用します。

// コレクションのすべてのデータにurl = http://your.url/here を追加
$collection->map(function ($v) {
    $v['url'] = 'http://your.url/here';
    return $v;
});
// コレクションそれぞれに count=xxx (任意の値) を追加
$collection->map(function ($v) {
    $v['count'] = <計算ロジック>;
    return $v;
});

● Laravelのモデルの結果セットに書式を変える「Accessor /Mutator」を追加する

少し書式を変えたいときは Accessor /Mutator を使いましょう

モデルファイルに以下を記述

    /**
     * アクセサー : is_starred=1 の時に ☆ を表示する
     */
    public function getStarMarkAttribute()
    {
        if ($this->attributes['is_starred'] == 1){
            return '<div class="text-warning">★</div>';
        }
    }

呼び出し方

$model->star_mark

関連エントリー

No.1384
12/10 11:35

edit

モデル
Eloquent
DB