0
私は2レベルのメニューのための関数を持ってください...しかし、私はどのように3つのレベルのためにそれを使用するか分からない。私を助けてくれますか?例配列ツリーメニューの配列の再帰関数
[/c300112000-zvire] => Array
(
[/c300112001-pes] => Array
(
[0] => /c300112005-antiparazitni-pripravky
[1] => /c300112002-granulovana-krmiva
[2] => /c300112009-hracky-misky-a-ostatni
[3] => /c300112003-konzervy-a-kapsicky
[4] => /c300112004-pamlsky-a-doplnky-stravy
[5] => /c300112008-psi-hygiena-a-zdravi
)
[/c300112010-kocka] => Array
(
[0] => /c300112015-antiparazitni-pripravky
[1] => /c300112011-granulovana-krmiva
[2] => /c300112017-hracky-a-misky
[3] => /c300112016-kocici-hygiena-a-zdravi
[4] => /c300112012-konzervy-a-kapsicky
[5] => /c300112013-pamlsky-a-doplnky-stravy
[6] => /c300112014-podestylky
)
[/c300112018-mala-zvirata] => Array
(
[0] => /c300112019-krmiva
[1] => /c300112020-steliva
)
[/c300112021-ptactvo] => Array
(
[0] => /c300112022-krmiva
[1] => /c300112023-steliva
)
[/c300112024-akvaristika-a-teraristika] => Array
(
[0] => /c300112025-krmiva
)
)
そして、私の機能の任意の助けのための唯一の2レベルではありません3
public function saveCategoryTree($categoryTree, Eshop $eshop)
{
$em = $this->getEntityManager();
for ($i = 0; $i < sizeof($categoryTree); $i++) {
$categoryParent = new Category();
$parent = array_keys($categoryTree)[$i];
$parentName = explode("/", $parent);
$parentName = end($parentName);
$categoryParent->setCreatedAt(new \DateTime());
$categoryParent->setLastCheckAt(new \DateTime());
$categoryParent->setLastHttpStatusCode(\Symfony\Component\HttpFoundation\Response::HTTP_OK);
$categoryParent->setActive(true);
$categoryParent->setLeaf(false);
$categoryParent->setEshop($eshop);
$categoryParent->setName($parentName);
$categoryParent->setLink($parent);
$em->persist($categoryParent);
$em->flush();
foreach ($categoryTree[array_keys($categoryTree)[$i]] as $childItem) {
if (is_array($childItem)) {
echo "Is array ! Recursive call";
} else {
$child = new Category();
$child->setParentCategory($categoryParent);
$child->setCreatedAt(new \DateTime());
$child->setLastCheckAt(new \DateTime());
$child->setLastHttpStatusCode(\Symfony\Component\HttpFoundation\Response::HTTP_OK);
$child->setActive(true);
$child->setLeaf(true);
$child->setEshop($eshop);
$child->setName($childItem);
$child->setLink($childItem);
$em->persist($child);
$em->flush();
}
}
}
exit;
}
おかげで作業。私の英語のために申し訳ありません。
取得エラー 'キャッチできる致命的なエラー:
私はこれらの線に沿って何かを試してみました、array given、D:\ Symfony \ src \ AppBundle \ Services \ CategoryService.php 42行目で呼び出されました。 – Radek
1対1でコピーするつもりはありませんでした。この特定の問題を解決するだろう。私は、私のサンプルコードの26行目の_processCategory呼び出しに子プロセスの通過を取り除いた。 – Fyntasia
ありがとうございました – Radek