我有产品视图。我想添加到此视图类别树中。我想到了jsTree。我在我的项目中使用 Laravel 7 和 kalnoy/nestedset 和https://www.jstree.com小米迁移文件:Schema::create('categories', function (Blueprint $table) { $table->id(); $table->string('category_name', 155); $table->string('description', 155)->nullable(); $table->string('keywords', 155)->nullable(); $table->longText('content')->nullable(); $table->char('enable', 1)->default(0); $table->string('photo', 155)->nullable(); $table->bigInteger('order')->default(0); $table->string('slug', 160)->nullable(); NestedSet::columns($table); $table->engine = "InnoDB"; $table->charset = 'utf8mb4'; $table->collation = 'utf8mb4_unicode_ci'; });在控制器中我有:public function categoryTree(CategoryRepositoryInterface $categoryRepository, Request $request) { $nodes = $this->getCategoriesTree($categoryRepository->getTree()); return $nodes; }private function getCategoriesTree($nodes): array { $categoryArray = array(); $traverse = function ($categories, $prefix = '-') use (&$traverse, &$categoryArray) { foreach ($categories as $category) { $categoryArray[] = ['id' => $category->id, 'name' => $prefix . ' ' . $category->category_name]; $traverse($category->children, $prefix . '-'); } }; $traverse($nodes); return $categoryArray; }在存储库中:public function getTree() { return $this->model->orderBy('order', 'ASC')->get()->toTree(); }我的模型是类别。结果我有: https: //pastebin.com/uErKGgHP如何将我的数据转换为 jsTree 格式?
1 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
好吧,我不知道你是否需要帮助来查看数据或数据格式,但我会尽力帮助解释 json 的格式,基本元素必须是 3:- Id:当前的唯一标识符元素。- 父母:来自父母的ID,或在没有父母时使用#。- 文本:显示项目名称。
您当前的输出数据无法接受 jsTree 格式,您必须针对此格式进行调整:
$('#yourdata').jstree({ 'core' : {
'data' : [
{"id": 1,"parent":"#","text": "- Books"},
{"id": 2,"parent":"1","text": "-- Comic Book"}
]
}
});
它将显示:
+ Book
-- Comic Book
作为子类别
我希望它有所帮助。
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消