Что нужно? Получить id которые есть у тикета и которых нет. Код. $allCategories = Categories::all(); $ticket = Tickets::find(request('id')); foreach ($allCategories as $category) { if (array_key_exists($category->id,$ticket->categories->toArray())) { dump($category->name); } else { } } И так if (array_key_exists($category->id,$ticket->categories->toArray())) { dump($category->name); В данном случае я получаю только значение единственной категории, когда их установлено две. А в случае else я получаю одну установленную у тикета и одну не установленную, а нужно чтобы я получал в условии if - установленные категории а в else не установленные. Что дает dump? $category->id 1 2 3 $ticket->categories->toArray() array:2 [▼ 0 => array:4 [▼ "id" => 1 "name" => "Срочно" "slug" => "srochno" "pivot" => array:2 [▶] ] 1 => array:4 [▼ "id" => 2 "name" => "Важно" "slug" => "vajno" "pivot" => array:2 [▶] ] ] --- Добавлено --- Я кстати понял почему потому-что он находит значение массива 1, который получается многомерный а не id. --- Добавлено --- Или нет)
Я фрилансер костыли наше все! foreach($allCatsArr as $catArr) { $allCats[$catArr->id] = $catArr->name; foreach ($ticket->categories as $category) { if(array_key_exists($category->id, $allCats)) { dump($catArr->name); unset($category->id); unset($catArr->name); } else { if ($catArr->name != null) { dump($catArr->name); } unset($category->id); unset($catArr->name); } } } --- Добавлено --- Хотя тоже не то он очень баганно работает) В случае указанных всех категорий он выводит что одна указанна а две не указанны)
Метод отдачи шаблона $allCatsArr = Categories::all(); $ticket = Tickets::find(request('id')); foreach ($ticket->categories as $categoryUser) { $categUser[$categoryUser->id] = $categoryUser->name; } return view('edit_ticket', compact('ticket', 'allCatsArr', 'categUser')); Сам код в шаблоне. @foreach($allCatsArr as $catArr) <div class="hide">{{ $allCats[$catArr->id] = $catArr->name }}</div> @if($allCats[$catArr->id] == @$categUser[$catArr->id]) {!! Form::checkbox('categories[]', count($allCats), ['checked' => true]) !!} {!! $allCats[$catArr->id] !!} @else {!! Form::checkbox('categories[]', count($allCats)) !!} {!! $allCats[$catArr->id] !!} @endif @endforeach