Я работаю в проекте laravel и использую библиотеку vuejs. в разделе категорий в компоненте создания формы я добавил vuejs-дерево, чтобы отобразить все добавленные категории, проблема в том, что все категории отображаются в качестве основной категории, даже в категории, в которой родительская категория отображается в jstree в качестве основной категории, это мой код
<div class="form-group">
<label for="name">Category Department:</label>
<VJstree :data="cats" show-checkbox allow-batch whole-row @item-click="itemClick"></VJstree>
<input type="hidden" v-model="parent_id" class="parent_id" />
</div>
<script type="text/javascript">
export default {
data(){
return {
Categories:[],
cats: [],
id:'',
parent_id:'',
name:'',
image:'',
description:'',
tags:'',
status:'',
}
},
methods:{
itemClick (node) {
this.parent_id = node.model.id;
},
getCats(){
axios.get('/dashboard/getCats').then(response=>{
this.cats = response.data;
});
},
getCategories(){
let url = '/dashboard/getCategories';
axios.get(url).then(res=>{
this.Categories = res.data;
if(this.Categories){
$('.dataTables_empty').hide();
}
})
}
},
mounted() {
this.getCategories();
this.getCats();
}
}
функция загрузки котов в контроллере категорий
function load_cats(){
$cats = Category::selectRaw('name as text')
->selectRaw('id as id')
->selectRaw('parent_id as parent')->get(['text','id','parent']);
$deps = [];
foreach ($cats as $cat){
$list_arr = [];
$list_arr['icon'] = '';
$list_arr['li_attr'] = '';
$list_arr['a_attr'] = '';
$list_arr['children'] ='';
if($cat->id){
$list_arr['state'] = [
'opened' => false,
'selected' => false,
'disabled' => true,
'hidden' => true,
];
}
$list_arr['id'] = $cat->id;
$list_arr['parent'] = $cat->parent == null ? '#' : $cat->parent;
$list_arr['text'] = $cat->text;
array_push($deps,$list_arr);
}
return json_encode($deps,JSON_UNESCAPED_UNICODE);
}