Laravel Array выполняет поиск с помощью Multiselect - PullRequest
0 голосов
/ 27 августа 2018

Здравствуйте, Stackoverflow Community,

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

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

Особый раздел, над которым я работаю, - это функция редактирования.

В настоящее время моя функция редактирования выглядит следующим образом:

 public function edit($id, Tag $tag)
{

    $tags = Tag::all();
    $newsletter = Newsletter::find($id);
    $tagged = $newsletter->tags; 
    $selected = explode(",", $tagged);

    // dd($selected);
    return view('newsletter.edit', compact('newsletter', 'tags', 'selected'));
}

Мой файл блейда редактирования внешнего интерфейса выглядит следующим образом:

 <select name="tags[]" class="form-control" multiple="multiple" id="tags">         
        @foreach ($tags as $tag)
           <option value="{{ $tag->name}}" {{ (in_array($tag->name, $selected, true)) ? ' selected' : '' }}> {{$tag->name}}</option> 
        @endforeach
     </select>

Однако - он проходит только через одно значениеи хотя selected пропускает массив значений, похоже, что он не проверяет все из них на наличие всех выбранных опций.

Поэтому выбран только один из 3 вариантов.

Я знаю, что, возможно, я не буду делать это так, как это делают большинство людей с помощью сводных таблиц, я пытался понять некоторые основы и поиграл так, как я знал, как это сделать, прежде чем я застрял здесь,

1 Ответ

0 голосов
/ 27 августа 2018

Я использую @if @endif вместо?: заявления.

Попробуйте изменить свой код следующим образом

<select name="tags[]" class="form-control" multiple="multiple" id="tags">         
    @foreach ($tags as $tag)
       <option value="{{ $tag->name}}" @if(in_array($tag->name, $selected, true)) selected @endif }}> {{$tag->name}}</option> 
    @endforeach
</select>
...