6
私は、関連するモデルに複数のカラムに平均値を得るために、このような何かを探しています:コミュニケーションと親しみやすさは、列名の配列ですEloquentを使用して複数の列を平均化する方法は?
$this->reviews()->avg('communication', 'friendliness')
を。しかし、集計関数は単一の列名しかサポートしていないようですので、私はこれをやっています:
$attributes = array('communication', 'friendliness');
$score = array();
foreach ($attributes as $attribute)
{
$score[] = $this->reviews()->avg($attribute);
}
return round(array_sum($score)/sizeof($attributes), 1);
この結果、複数のクエリが発生します。ここでベストプラクティスの提案はありますか?以下に示すように、あなたがEloquent内raw database expressionを使用することができ、複数のクエリを避けるために
おかげ
ありがとうございます。 –
すごく、ありがとう - DB上の少しのタイプミス:生、DB :: raw - cheers – Leon
ありがとう、私は私の答えを更新しました。 –