2017-05-05 24 views
0

私は同じ2つのフィールドを持ついくつかのテーブルを持っている:フィールドの値を別のフィールドに置き換える方法は?

value, default_value

値がnullのときdefault_valuevalueを交換して、結果を返すためにどのように?

私は結果のコレクションで繰り返しを使用しません。私は普遍的な解決をしようとします。

ローカルスコープを使用しようとしましたが、悪い判断と思われます。

+0

[ララベルの[COALESCE]の可能な複製(http://stackoverflow.com/questions/33675277/coalesce-in-laravel) –

答えて

1

あなたが雄弁を使用する場合は、次のようにアクセサを作成することができます

public function getRealValueAttribute() 
{ 
    return $this->value ? $this->value : $this->default_value; 
} 

、あなたがこのような結果を得ると仮定すると:

$items = Model::all(); 

あなたは、このようなモデルのために、このフィールドを表示することができます

foreach ($items as $item) { 
    echo $item->real_value; 
} 
+0

アクセサの呼び出し方法 – Garaman

+0

RealのないgetValueAttribute()がありますか? – Garaman

+0

@ Garamanむしろ、 'value'と同じで、プレーンな値を使う必要がある場合は混乱を招くかもしれないので、別の名前を使うことをお勧めします。 –

関連する問題