teşekkür ediyorum , çok faydalı oldu bununla yapabildim , son olarak bişey sormak istiyorum
kategoriler tablom id, parent_id, name, şeklinde
ve Category Model de children isminde methodum var
public function children(){
return $this->hasMany('App\Models\Category', 'parent_id', 'id');
}
$kategoriler= Category::all();
$data=[];
foreach ($kategoriler as $k) {
$data[]=[
'parent_id'=>$k->parent_id,
'name'=>$k->name,
'href'=>$k->href,
'children'=>$k->children
];
}
return $data;
yukarıdaki kod ile sorgu yaptığımda aşağıdaki çıktıyı alıyorum
[
{
parent_id: 0,
text: "İnsan",
href: "#link",
children: [
{
id: 2,
parent_id: 1,
text: "Din Açısından İnsan",
slug: "din-acisindan-insan",
href: "islamiyat/2",
description: "asdadasd",
created_at: "2019-12-18 19:57:52",
updated_at: "2019-12-18 19:57:53"
},
{
id: 3,
parent_id: 1,
text: "Din Açısından İnsan",
slug: "din-acisindan-insan-1",
href: "islamiyat/3",
description: "asdadasd",
created_at: "2019-12-18 19:57:53",
updated_at: "2019-12-18 19:57:53"
}
]
},
{
parent_id: 1,
text: "Din Açısından İnsan",
href: "#link",
children: [ ]
},
{
parent_id: 1,
text: "Din Açısından İnsan",
href: "#link",
children: [ ]
},
{
parent_id: 0,
text: "Din",
href: "#link",
children: [ ]
}
]
gördüğünüz üzere bazı kategori menulerinde children olmamasına rağmen json çıktıda boşş olarak gözüküyor, bunun olmasını istemiyorum , yani bir kategorinin alt kategorisi yok ise orada children gözükmesin istiyorum, yani aşağıdaki örnekte olduğu gibi bir çıktı almak istiyorum bunu nasıl yapabilirim sizce controllerde daki sorgumu nasıl değiştirmeliyim yardımcı olursanız sevirim selamlar.
defaultData = [
{
text: 'Parent 1',
href: '#parent1',
tags: ['4'],
nodes: [
{
text: 'Child 1',
href: '#child1',
tags: ['2'],
nodes: [
{
text: 'Grandchild 1',
href: '#grandchild1',
tags: ['0']
},
{
text: 'Grandchild 2',
href: '#grandchild2',
tags: ['0']
}
]
},
{
text: 'Child 2',
href: '#child2',
tags: ['0']
}
]
},
{
text: 'Parent 2',
href: '#parent2',
tags: ['0'],
},
{
text: 'Parent 3',
href: '#parent3',
tags: ['0']
},
{
text: 'Parent 4',
href: '#parent4',
tags: ['0']
},
{
text: 'Parent 5',
href: '#parent5' ,
tags: ['0']
},
];