猿问

JsTree 与 Laravel 的集成

我有产品视图。我想添加到此视图类别树中。我想到了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 格式?


蛊毒传说
浏览 108回答 1
1回答

摇曳的蔷薇

好吧,我不知道你是否需要帮助来查看数据或数据格式,但我会尽力帮助解释 json 的格式,基本元素必须是 3:- Id:当前的唯一标识符元素。- 父母:来自父母的ID,或在没有父母时使用#。- 文本:显示项目名称。您当前的输出数据无法接受 jsTree 格式,您必须针对此格式进行调整:  $('#yourdata').jstree({ 'core' : {        'data' : [                    {"id": 1,"parent":"#","text": "- Books"},              {"id": 2,"parent":"1","text": "-- Comic Book"}        ]       }      });它将显示:+ Book-- Comic Book 作为子类别我希望它有所帮助。
随时随地看视频慕课网APP
我要回答