Laravel - Хранить несколько значений формы флажка в базе данных - PullRequest
0 голосов
/ 21 сентября 2018

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

Вид:

<div id="checkboxes">
                         <input type="checkbox" class="checkbox" name="services" value="{{ $service->id }}" id="{{ $service->id }}" />
                         <label class="whatever" for="{{ $service->id }}"><p class="serv-text"> {{ $service->service_name }} + ${{ $service->price }} </p></label>
                             </div>

Контроллер:

  public function store(Request $request)
    {
       orders::create(Request::all());
        return 'test';
    }

Модель:

class orders extends Model
{
    protected $fillable = [
    'category', 
    'services',
    'total_price',
    'user_id',
    'status',
    'user_id'];
}

Когда я пытаюсь отправить форму, в базе данных служб есть только один номер, даже если я установил несколько флажков при отправке формы.Я пытался найти в Google решение, но ничего.

1 Ответ

0 голосов
/ 21 сентября 2018

Если у вас есть несколько таких флажков:

<input type="checkbox" name="services" value="1"/>
<input type="checkbox" name="services" value="2"/>
<input type="checkbox" name="services" value="3"/>

Он отправит только одно значение на сервер, потому что имя должно быть уникальным.Обходной путь - использовать входные данные массива:

<input type="checkbox" name="services[]" value="1"/>
<input type="checkbox" name="services[]" value="2"/>
<input type="checkbox" name="services[]" value="3"/>

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

$services = $request->input('services');
foreach($services as $service){
 orders::create($service);
}

Проверка массивов в Laravel:

https://laravel.com/docs/5.7/validation#validating-arrays

Подробнее о входных массивах:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#Handling_multiple_checkboxes

Как получить массив ввода формы в массив PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...