Не удается сохранить раскрывающееся значение с несколькими вариантами выбора в базе данных - PullRequest
0 голосов
/ 16 июня 2020

Я хочу сохранить значение раскрывающегося списка с несколькими вариантами выбора в базе данных.

Вот лезвие. php

 <select name="namedropdown[]" id="namedropdown" class="selectpicker" multiple data-live-search="true">
    <option value="" disabled selected>Nothing selected</option>
        @foreach ($tdropdown as $tdrop)
        <option value="{{$tdrop}}">{{$tdrop}}</option>
        @endforeach
 </select>

enter image description here

Вот функция сохранения в контроллере

public function empstore(Request $request){

$employee = new employee();

$employee->namedropdown = $request->input('namedropdown');
$employee->namedropdown = implode(',', $employee->namedropdown);

$employee->save();
return redirect()->route('employee.index')->with('success','Data Added');

}

Из моего кода появляется ошибка Array to string conversion

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

Ответы [ 3 ]

2 голосов
/ 16 июня 2020

Эта строка здесь выглядит неправильно

$employee->namedropdown = $request->input('namedropdown');

$request->input('namedropdown') вернет массив , и вы попытаетесь присвоить возвращаемое значение $employee->namedropdown, которое, как я считаю, это строка .

Так что лучше сделать это напрямую:

$employee->namedropdown = implode(',', $request->input('namedropdown'));

Надеюсь, это поможет!

2 голосов
/ 16 июня 2020

Вам не нужно назначать $request->input('namedropdown') модели.

Попробуйте этот код:

public function empstore(Request $request){

$employee = new employee();
$employee->namedropdown = implode(',', $request->input('namedropdown'));

$employee->save();

return redirect()->route('employee.index')
    ->with('success','Data Added');
}

PS: вам следует улучшить свой стиль кода в соответствии с PSR1, PSR2 и PSR12. Методы должны быть в верблюжьем регистре, имена классов должны быть в верхнем регистре.

0 голосов
/ 16 июня 2020

Так и надо делать

   $employee->namedropdown = implode(',', $request->input('namedropdown'));
...