Laravel 5.2: DB: raw in relationship

0

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.*');
    
asked by anonymous 25.03.2018 / 00:54

0 answers