Загрузите значения в базу данных, которые поступили из одного ввода, разделенного точкой с запятой. - PullRequest
0 голосов
/ 07 сентября 2018

Итак, у меня есть этот вход,

<input name="tags" class="form-control" type="text" id="tags" placeholder="separate multiple tags by semi-colon ;"/>

например, я набрал в Apple; Манго тогда в таблице Tags появятся две новые строки, два разных uuids.

вот мой код магазина:

  foreach ($request->input('tags', ;) as $tag_val){
            $tag = Tag::firstOrCreate([
                'name' => $tag_val
            ]);
        }

Он не будет сохранен в базе данных, если имя тега уже существует.

Я не думаю, что мой код правильный, потому что он возвращает ошибку: unexpected ;

1 Ответ

0 голосов
/ 07 сентября 2018
 foreach (explode( ';',$request->input('tags')) as $tag_val){
            $tag = Tag::firstOrCreate([
                'name' => $tag_val
            ]);
        }

У вас есть синтаксическая ошибка, и вы должны преобразовать ее в массив, затем выполнить цикл по массиву.

также обязательно оберните его в if, чтобы избежать исключения

if($request->input('tags')){
foreach (explode( ';',$request->input('tags')) as $tag_val){
            $tag = Tag::firstOrCreate([
                'name' => $tag_val
            ]);
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...