Verdiğim sayfada zaten dökümantasyonu mevcut, direk aşağıda kurulumu, nasıl kullanılacağı yazıyor ama kısaca bahsetmek gerekirse:
Category modelimiz olsun, bunun migrasonunu yazalım:
use Kalnoy\Nestedset\NestedSet;
Schema::create('categories', function (Blueprint $table) {
$table->string('name');
NestedSet::columns($table); // bu kısmı ekliyoruz
});
Category modeline de NodeTrait traitini ekliyoruz
use Illuminate\Database\Eloquent\Model;
use Kalnoy\Nestedset\NodeTrait;
class Category extends Model {
use NodeTrait;
}
Şimdi işlemlere geçelim:
// Ana kategori oluşturalım
$bilgisayar = Category::create(['name' => 'Bilgisayar']);
$elektronik = Category::create(['name' => 'Elektronik']);
$beyazesya = Category::create(['name' => 'Beyaz Eşya']);
// Alt kategori ekleyelim
$masaustuBilgisayar = Category::create(['name' => 'Masaüstü Bilgisayarlar']);
$bilgisayar->appendNode($masaustuBilgisayar); // Bilgisayar kategorisinin alt kategorisi yapıyoruz
// Masaüstü Bilgisayar altına eklemek için kategori oluşturalım.
$desktop = Category::create(['name'=> 'Desktop']);
$allInOne = Category::create(['name'=> 'All In One']);
$oyuncuBilgisayari = Category::create(['name'=> 'Oyuncu Bilgisayarı']);
// Oluşturduğumuz kategorileri Masaüstü Bilgisayarın alt kategorisi olarak ekleyelim.
$masaustuBilgisayar->appendNode($desktop);
$masaustuBilgisayar->appendNode($allInOne);
$masaustuBilgisayar->appendNode($oyuncuBilgisayari);
// Şimdi bilgisayar kategorisi ve tüm alt kategorilerini istiyorsak
$bilgisayarKategorisi = Category::descendantsAndSelf($bilgisayar->id);
foreach($bilgisayarKategorisi as $bilgisayarlar) {
echo $bilgisayarlar->name;
}
gibi. Dökümantasyona bakın, orada bir sürü yöntem var. Bazı şeyleri yapmanın bir çok yolu var, kullandıkça öğrenirsiniz.