Laravel Eloquent HasManyThrough-产品,类别,颜色

时间:2019-03-04 10:26:33

标签: laravel eloquent has-many-through

我需要选择具有特定颜色的类别中的所有产品,以便在类别视图(具有由表单指定的颜色)中具有该类别的所有产品,但仅具有所选颜色。

我已经尝试过了...但是我知道我错了!我对hasManyThrough不太了解...

在Prodotto模型中:

 public function categoria() // il nome del metodo è il metodo della relazione
    {
        return $this->hasOne(Categoria::class,
            'id','categoria_id'
        );

    }


 public function colori()
{
    return $this->belongsToMany(Colore::class , 'prodotto_colore')->withTimestamps();
}

在Colore模型中:

public function prodottiCategoriaColore()
{
    return $this->hasManyThrough(Prodotto::class, Categoria::class);
}

在分类模型中:

public function prodotti() // il nome del metodo è il metodo della relazione
{
    return $this->hasMany(Prodotto::class,
        'categoria_id','id'
    );
}

在CategoriaController中:

private function colore($categoriaId , $coloreId)
    {
        $categoria_qb = Categoria::query()
            ->where('id', '=', $categoriaId)->with('prodotti');

        $prodottiColore_qb = $categoria_qb->where('colore_id' , $coloreId)->with('prodottiCategoriaColore');

        $prodotti = $prodottiColore_qb->first();

        return view('frontend.categoria', ['prodotti' => $prodotti]);

    }

在数据库中,我有一个用于prodotti的表,一个用于colori的表,一个用于类别的表和一个枢轴prodotto_colore(产品ID-颜色ID)

0 个答案:

没有答案