Как сохранить множественный выбор в базе данных? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть опция множественного выбора, и я хочу сохранить всю запись в базе данных, теперь она сохраняет только последнюю, как я могу это сделать? Мне нужно сохранить множественный выбор из tags с запятой (,) между ними. , Вот мой контроллер и то, что я попробовал

$news = News::create([
                        'locale' => Session::get('admin_locale'),
                        'title' => $request['title'],
                        'slug' => Slugify::slugify($request['title']),
                        'news_class' => $request['news_class'],
                        'description' => $request['description'],
                        'tag' => $request['tag'],
                        'tags' => $request->input['tags'],
                        'category' => 'news',
                        'category_id' => $request['category_id'],
                        'metatitle' => $request['title'],
                        'metadescription' => substr(strip_tags($request['description']), 0, 160),
                        'image' => $image,
                    ]);

Вот мой взгляд:

  <div class="row d-flex justify-content-center mt-100 col-md-12 g-mb-30" >
    <div class="col-md-12"   > 
        <label class="g-mb-10">Tags</label>
        <select id="choices-multiple-remove-button" placeholder="Select" multiple title="Category Talent" name="tags">

                @foreach($news as $tag)
                            <option value="{{ $tag->tag }}">{{ $tag->tag }}</option>
                @endforeach 
        </select> </div>
</div>

1 Ответ

0 голосов
/ 07 ноября 2019

Чтобы передать несколько значений, вы, вероятно, захотите переименовать ваш ввод в массив:

<select ... name="tags[]">

Затем на стороне сервера вы должны получить их как массив под входом tags:

$tags = $request->input('tags', []);

Вы можете объединить элементы массива с помощью implode, чтобы получить строковое представление:

$tags = implode(',', $tags);

Руководство по PHP - Справочник по функциям - Обработка текста - Строки - Функции - implode

$news = News::create([
    ...
    'tags' => implode(',', $request->input('tags', [])),
    ...
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...