Как сделать автоматическую вставку категорий в doctrine tree из xml?

Всем привет!

Имеется xml, файл выгрузка товаров из 1с, категории товаров указаны в виде level0=name, level1=name и так далее.

Структура БД
e89906dd27b947528e06ddb592865f81.png

Сейчас пишу парсер для занесения в базу данных. Создал сущности doctrine. Со всеми сущностями понятно, кроме категорий.

Вот как это работает на примере в документации tree
/** Inserting node in different positions **/

<?php
$food = new Category();
$food->setTitle('Food');

$fruits = new Category();
$fruits->setTitle('Fruits');

$vegetables = new Category();
$vegetables->setTitle('Vegetables');

$carrots = new Category();
$carrots->setTitle('Carrots');

$treeRepository
    ->persistAsFirstChild($food)
    ->persistAsFirstChildOf($fruits, $food)
    ->persistAsLastChildOf($vegetables, $food)
    ->persistAsNextSiblingOf($carrots, $fruits);

$em->flush();

/**
Tree example:

/Food
    /Vegetables
        /Onions
        /Carrots
        /Cabbages
        /Potatoes
    /Fruits
**/

https://github.com/Atlantic18/DoctrineExtensions/b...

Но суть в том, что мне не нужно заносить каждую категорию вручную, они уже прописаны в xml с указанием вложенности и названием.

Не понимаю какой алгоритм надо написать
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Рекурсивно проходите xml с категориями, просто указывая родителя для каждой категории.
Вот раздел в документации
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы