При нулевом вводе "implode (): неверные аргументы переданы" в laravel - PullRequest
0 голосов
/ 05 декабря 2018

Я использую laravel 5.5. У меня выпадающий список.если я не выберу какое-либо значение, это приведет к ошибке. "implode (): переданы неверные аргументы"

<select  multiple="multiple" name="language[]">
@foreach($language_data as $language)
   <option value="{{$language->language_id}}">{{$language->language_name}}</option>
@endforeach
</select>

Контроллер

  $language = $request->input('language');
  $language = implode(',', $language);
 DB::table('language')->insert(['language' => $language,]);

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

попробуйте это, следует решить проблему

$language = ''; //set default language here
if($request->input('language')) {
   $language = $request->input('language');
   $language = implode(',', $language);
}
DB::table('language')->insert(['language' => $language,]);
0 голосов
/ 05 декабря 2018

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

  $language = $request->input('language');
  if (!empty($language)) {
     $language = implode(',', $language);
  } else {
     $language = '';
  }
  DB::table('language')->insert(['language' => $language]);
0 голосов
/ 05 декабря 2018

просто используйте простое, если:

if($request->input('language') !== ''){
  $language = $request->input('language');
  $language = implode(',', $language);
 DB::table('language')->insert(['language' => $language,]);
}

И вы можете откатиться назад, если необходимо определить язык в бэкэнде, если ни один не выбран, как показано ниже

$request->input('language') !== '' ? $language = $request->input('language') : $language = 'en_GB';

$language = implode(',', $language);
DB::table('language')->insert(['language' => $language,]);
...