Есть 3 модели Категория, Продукт, Атрибуты продукта
class Category extends Model
{
/**
* Category has many Products.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function products()
{
return $this->belongsToMany(Product::class)->withTimestamps();
}
}
class Product extends Model
{ /**
* Product has many Categories.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function categories()
{
return $this->belongsToMany(Category::class)->withTimestamps();
}
}
class Attribute extends Model
{
/**
* Attribute has many Products.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function products()
{
return $this->belongsToMany(Product::class)->withTimestamps();
}
}
Задача стоит следующим образом:
В контроллере категории нужно выводить продукты и связанные с ними атрибуты
Контроллер выглядит сейчас так:
class CatalogController extends Controller
{
/**
* Display the specified resource.
*
* @param $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$products=Category::with('products', 'attributes')->where('id', $id)->orWhere('slug', $id)->first();
//dd($products);
return view('catalog.index')->with('products', $products);
}
}
Ошибка в том что attributes никак не связанны с Category::class
Category::class связан с Product::class через pivot table category_product
и соответсвенно Product::class связан с Attribute::class через attribute_product
соответсвенно вопрос:
как правильно сделать запрос в контроллере?
или нужно что то добавить в модели, чтобы появилась связь Category::class - Attribute::class?
если нужно то что?