laravel 中的空输入 "implode(): Invalid arguments passed"
On null input "implode(): Invalid arguments passed" in laravel
我正在使用 laravel 5.5
我有一个 multi-select 下拉列表。如果我没有 select 任何值,它就会产生错误。 "implode(): Invalid arguments passed"
<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,]);
只需使用一个简单的 if:
if($request->input('language') !== ''){
$language = $request->input('language');
$language = implode(',', $language);
DB::table('language')->insert(['language' => $language,]);
}
如果需要在后端定义语言,如果像下面这样选择 none,您可以回退
$request->input('language') !== '' ? $language = $request->input('language') : $language = 'en_GB';
$language = implode(',', $language);
DB::table('language')->insert(['language' => $language,]);
试试这个,应该可以解决问题
$language = ''; //set default language here
if($request->input('language')) {
$language = $request->input('language');
$language = implode(',', $language);
}
DB::table('language')->insert(['language' => $language,]);
在内爆之前进行检查。
$language = $request->input('language');
if (!empty($language)) {
$language = implode(',', $language);
} else {
$language = '';
}
DB::table('language')->insert(['language' => $language]);
$language = optional(collect($request->input('language')))->implode(',');
DB::table('language')->insert(['language' => $language]);
从 $request 值创建一个集合,在事件中包装可选 'language' 不是必需的属性,内爆结果。
我正在使用 laravel 5.5 我有一个 multi-select 下拉列表。如果我没有 select 任何值,它就会产生错误。 "implode(): Invalid arguments passed"
<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,]);
只需使用一个简单的 if:
if($request->input('language') !== ''){
$language = $request->input('language');
$language = implode(',', $language);
DB::table('language')->insert(['language' => $language,]);
}
如果需要在后端定义语言,如果像下面这样选择 none,您可以回退
$request->input('language') !== '' ? $language = $request->input('language') : $language = 'en_GB';
$language = implode(',', $language);
DB::table('language')->insert(['language' => $language,]);
试试这个,应该可以解决问题
$language = ''; //set default language here
if($request->input('language')) {
$language = $request->input('language');
$language = implode(',', $language);
}
DB::table('language')->insert(['language' => $language,]);
在内爆之前进行检查。
$language = $request->input('language');
if (!empty($language)) {
$language = implode(',', $language);
} else {
$language = '';
}
DB::table('language')->insert(['language' => $language]);
$language = optional(collect($request->input('language')))->implode(',');
DB::table('language')->insert(['language' => $language]);
从 $request 值创建一个集合,在事件中包装可选 'language' 不是必需的属性,内爆结果。