как получить вложенную категорию родителей и братьев и сестер родителей? - PullRequest
0 голосов
/ 20 мая 2018

Я новичок в красноречии.Я создаю систему, где пользователь может добавить сообщение / продукт и выбрать категорию для него.при создании поста я использую html -select-, чтобы показать родителей первого уровня, затем, когда пользователь выбирает один из них, используя ajax, я загружаю потомков этой категории в другой -select- снова, когда пользователь выбирает одного из потомков, используя ajax, я получаю детей изэта категория и добавить тему к форме, используя -select-, поэтому при создании сообщения все в порядке.

проблема в том, что когда пользователь хочет редактировать сообщение, я не могу отобразить список категорий в соответствии с выбранной пользователем категорией,Например, у нас есть следующие категории:

-laptop
-- asus
---- 11 inches
---- 14 inches
-- apple
---- 11 inches
---- 14 inches
-mobile
-- samsung
---- smart phone
---- tablet
-- apple
---- smart phone
---- tablet

Допустим, пользователь выбрал смартфон Apple .когда пользователь редактирует сообщение, я хочу показать категории, подобные этой:

<select>
    <option>laptop</option>
    <option selected>mobile</option>
</select>
<select>
    <option>samsung</option>
    <option selected>apple</option>
</select>
<select>
    <option selected>smart phone</option>
    <option>tablet</option>
</select>

обратите внимание, что все родители выбранной пользователем категории выбраны .

таблица кошек

id    cat_name    cat_slug    cat_parent

Я пытался сделать что-то подобное, но думаю, что я заблудился в середине.

function getEditedCategories($catId){
   $cats=[];
   $cat=\App\item_category::with('siblings')->find($catId)->toArray();
   $cats=array_merge($cats,$cat);
   function getCatParent($catParent,$cats,$i){
       $catParent=\App\item_category::with('siblings')->find($catParent)->toArray();
       array_add($cats , 'parents'.$i,$catParent);
       return $catParent['cat_parent'];
   }
   $catParent=$cat['cat_parent'];
   $i=1;
   while(!is_null($catParent)) {
       $i++;
       $catParent = getCatParent($catParent, $cats,$i);
   }
   dd($cats);
}

это не работает, и, конечно, нехорошо выглядеть.

отредактировано: результат dd ($ cats)

array:5 [
"id" => 6
  "cat_name" => "asgas"
  "cat_slug" => "asgasdf"
  "cat_parent" => 5
  "siblings" => array:1 [
    0 => array:4 [
      "id" => 6
      "cat_name" => "asgas"
      "cat_slug" => "asgasdf"
      "cat_parent" => 5
    ]
  ]
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...