Blade tarafında modeldeki veriyi şu şekilde alıp jsTree'yi başarılı şekilde oluşturuyorum. (productCategories.index.blade.php)
$('#jstree').jstree({
"checkbox": {
keep_selected_style: true,
three_state: false,
},
plugins: ["wholerow", "checkbox", "search"],
core: {
strings : {
'New node': 'Yeni Kategori'
},
multiple: false,
check_callback: true,
themes: {
name:"default",
variant: "large",
responsive: true,
stripes: true,
},
data: {
"url": "{{Route("productCategories.getProductCategories")}}"
},
}
});
Blade tarafına nested kategorileri göndermek için şunu sorunsuz olarak kullanıyorum. (ProductCategory.php - controller)
public function getProductCategories()
{
$productCategories = productCategory::defaultOrder()->withDepth()->get()->linkNodes();
$result = [];
foreach ($productCategories as $productCategory) {
$parent = $productCategory->parent_id ?: '#';
$node = [
'id' => $productCategory->id,
'parent' => $parent,
'text' => $productCategory->category_name,
];
array_push($result, $node);
}
return response()->json($result);
}
Şimdi Blade'deki JS kodu ile jsTree'nin yapısını olduğu gibi DB'ye kayıt etmek istiyorum.
Bunun için de lazychaser'ın Nested Set'inin rebuildTree fonksiyonunu kullanmak istiyorum.
Buradaki sorun şu :
jsTree'nin bana verdiği array'daki key'ler : id, text, icon, children.
laravel nested set'in benden istediği : id, name, children.
Ya jsTree bana text değil de name olarak versin,
Ya da laravel nested set text'i kabul etsin değil mi ? 🙂
Teşekkürler.