salobey sorunu dikkatlı okumamışım ağaç yapın: kategori -> altkategori -> marka -> ürün böyle olmasını istiyor isen farklı bir yol izlemelisin ürün modeli ile kategori modelini bağlamalısın. benim anladığım iki farklı ağaç yapısı istediğin (kategori -> altkategori -> marka) ve (kategori -> altkategori -> ürün) fakat istediğin ağaç yapısındaki markayı çıkarıp (kategori -> altkategori -> ürün) böyle kullanmalısın ve ürün ile marka bağlantın olmalı böylece ağaç yapındaki ürünün marka sınıda erişebilirsin ve bu arada polymorphic kullanma gerek yok ürün ile kategori bağlaman yeter
class Urun extends Model { (id,name,marka_id)
public function kategoriler()
{
return $this->belongsToMany(Kategori::class, 'urun_kategori');
}
// bir ürün sadece bir markaya ait olabilir
public function marka()
{
return $this->hasOne(Marka::class);
}
}
class Kategori extends Model {
public function parent()
{
return $this->belongsTo(Kategori::class, 'parent_id');
}
public function children()
{
return $this->hasMany(Kategori::class, 'parent_id');
}
public function ürünler()
{
return $this->belongsToMany(Urun::class, 'urun_kategori');
}
}
urun_kategori pivot tablon (kategori_id, urun_id)
bu durumda $kategori -> $altkategori -> ($urun->marka->name - $urun->name ) gibi kullanabilirsin