Как заполнить множественный выборщик старым значением в laravel - PullRequest
1 голос
/ 03 июля 2019

У меня есть edit.blade.php (Post), где у меня есть несколько селекторов выбора, которые должны показывать все категории (Категория), и одна из которых уже выбрана. После некоторых исследований я обнаружил, что этот метод работает, но он говорит, что in_array () ожидает, что параметр 2 будет массивом, ноль задан

<select class="form-control selectpicker" multiple name="category[]" title="Categoría">
  @foreach($categories as $category)
        <option value="{{ $category->id }}" {{ (in_array($category, old("category")) ? "selected":"") }} >{{ $category->name }}</option>
  @endforeach
</select>

Я отправляю из моего PostController все существующие категории из черты (то есть, категории $) и категории, которые публикуются, находятся в $ post-> Categories.

РЕДАКТИРОВАТЬ: удалось получить то, что я хочу, но теперь я получаю несколько копий значений, любой способ избежать этого?

<select class="form-control selectpicker" multiple name="category[]" title="Categoría">
                                @foreach ($categories as $category)
                                    @foreach ($post->categories as $postCategory)
                                        @if ($postCategory->id == $category->id)
                                            <option selected value="{{ $category->id }}">{{ $category->name }}</option>
                                        @else
                                            <option value="{{ $category->id }}">{{ $category->name }}</option>
                                        @endif
                                    @endforeach
                                @endforeach
                            </select>

1 Ответ

1 голос
/ 10 июля 2019

Вы можете использовать вот так, для категорий сообщений, получить идентификатор и проверить в массиве, или из контроллера вы также можете передать массив категорий сообщений,

  @foreach ($categories as $category)
         <option @if(in_array($category->id, $post->categories->pluck('id')->toArray())) selected 
         @endif value="{{ $category->id }}">{{ $category->name }}</option>                
    @endforeach
...