несколько значений из выпадающего списка в livewire

#php #laravel #laravel-livewire

Вопрос:

У меня есть выпадающий список и ввод текста в форме. Форма создает курс, и я хочу выбрать класс для курса из выпадающего списка и записать его емкость для ввода текста. Но на курсе может быть несколько аудиторий. Как я могу сохранить эти классы и их вместимость и отобразить их в таблице под формой?Подобный этому: введите описание изображения здесь

Вот мой код, который сохраняет только один класс и вместимость

 <div class="sm:col-start-1 sm:col-end-3 col-span-3  ">
    <x-select x-on:change="isShowing = $event.target.value" name="classroom_id" label="{!! __('Classroom') !!}" wire:model="classroom_id"
            id="classroom_id"
            :options="$this->classrooms"/>
    <x-jet-input-error for="classroom_id" class="mt-2" />
</div>
<div class="col-span-2 sm:col-span-1 " x-show="isShowing">
    <label class="tf-form-label" for="capacity">
        {{ __('Capacity') }}
    </label>
    <input wire:model.debounce.250ms="capacity" type="text" name="capacity" id="capacity" class="tf-input" />
    <x-jet-input-error for="capacity" class="mt-2" />
</div>
 
 $this->form->save();// firstly course saved
$classroom = new Classroom();
$classroom->course_id = $this->form->id;
$classroom->classroom_id = $this->classroom_id;
$classroom->capacity = $this->capacity;
$classroom->save();
 

Комментарии:

1. вы должны написать код для этого, и если возникнут какие-либо проблемы, пожалуйста, приходите сюда, чтобы помочь вам достичь ваших целей

Ответ №1:

Добавьте следующие коды в свой компонент.

Компонент

  public $classroom_id, $capacity;
 
 $course = Course::create($validatedCourseData); // firstly course saved
 
 // $this->classroom_id is array, because we set "multiple" in blade file
 $course->classrooms()->attach($this->classroom_id);
 

Лезвие

Пожалуйста, добавьте несколько в свой код поля выбора.

 <div class="sm:col-start-1 sm:col-end-3 col-span-3  ">
    <x-select x-on:change="isShowing = $event.target.value" name="classroom_id" label="{!! __('Classroom') !!}" wire:model="classroom_id"
            id="classroom_id"
            :options="$this->classrooms" multiple/>
    <x-jet-input-error for="classroom_id" class="mt-2" />
</div>
<div class="col-span-2 sm:col-span-1 " x-show="isShowing">
    <label class="tf-form-label" for="capacity">
        {{ __('Capacity') }}
    </label>
    <input wire:model.debounce.250ms="capacity" type="text" name="capacity" id="capacity" class="tf-input" />
    <x-jet-input-error for="capacity" class="mt-2" />
</div>