#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>