I need to access the avaliações
table and make a calculation to calculate the grade of each product.
I tried this way, but the nota
field created in DB does not appear when I try to access in view , but I can access the fields of the% usually.
$produtos = Produto::whereHas('avaliacoes', function($q) {
$q->select(DB::raw('(CEIL(SUM(qualidade+aparencia+preco) / 3 / COUNT(id))) as nota'));
})->get();
A product can have several ratings.
Model Evaluations
class Avaliacoes extends Model
{
protected $fillable = array('cliente_id', 'produto_id', 'aparencia', 'preco', 'qualidade');
public function produto()
{
return $this->belongsTo('App\Produto');
}
}
Model Product
class Produto extends Model
{
public function avaliacoes()
{
return $this->hasMany('App\Avaliacoes');
}
{
INNER JOIN
$produtos = Produto::join('avaliacoes', 'avaliacoes.produto_id', '=', 'produto.id')
->select(DB::raw('(CEIL(SUM(qualidade + aparencia + avaliacoes.preco) / 3 / COUNT(avaliacoes.id))) as nota'), 'produto.*');