Построить подложку нитиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Построить подложку нити

Сообщение Anonymous »

Я использую Laravel 11, Livewire 3 и Filment 3, и у меня есть проблема или вопрос о практике моего дела. < /p>
У меня есть модель "встречи" для некоторых событий Полем В этой модели у меня есть несколько простых атрибутов, таких как «имя», «дата», Dateto «.... но также у меня есть некоторые связанные модели, такие как« люди »с атрибутами, такими как« тип »,« Имя »,« Примечание ».. . Проблема. «« Примечание »и кнопка« добавить человека », чтобы добавить его в список. Я не могу использовать мультисъемку, потому что есть более одного атрибута для людей. это с полем накаливания нити: < /p>

Код: Выделить всё

Grid::make(1)
->schema([
EventsPersonList::make('person_list')
->label(false)
->default([])
->live()
])
< /code>
В этом пользовательском поле я просто использую выражение X-for, чтобы нарисовать таблицу с данными из "person_list". < /p>
В моем творении -О.TextInput::make('meeting_name')
->live()
->required(),

Select::make('person_type')
->live(onBlur: true)
->options(persons_type::all()->pluck('name', 'id'))
->searchable(),

TextInput::make('person_name')
->live()
->required(),

Textarea::make('person_note')
->live()
->rows(3)

Actions::make([
Action::make('add_person')
->action(function (Livewire $livewire) {
$livewire->dispatch('addperson');
})
]),

< /code>
Как вы видите, я вызвал событие Livewire для отправки заполненных данных в пользовательское поле. Вот мое отправленное событие: < /p>
#[On('addperson')]
public function AddPerson()
{
$form = $this->form->getState();

$person = [
'person_type' => !empty($form['person_type']) ? $form['person_type'] : null,
'person_name' => !empty($form['person_name']) ? $form['person_name'] : null,
'person_note' => !empty($form['person_note']) ? $form['person_note'] : null,
];
$person_list[] = $person;

$formdata = [
'person_list' => $person_list,
];

$this->form->fill($formdata);
}

< /code>
Во -первых, это работает очень хорошо. Я могу добавить людей, и данные человека правильно хранятся в $ data ['person_list'] 
.
, но
Все работает до тех пор, пока у меня есть данные в моей встрече Потому что щелчок на действие, носит запуска по проверке формы. Так что, если Meeting_Name пуст, и я сначала хочу добавить человека, человек не будет добавлен после нажатия, потому что нить показывает ошибку проверки и предотвращает добавление человека.
Это производит Мое мышление, если эта практика - лучший способ справиться с этим. Я много искал, если есть способ предотвратить действие, но я испортил. Я также думал о подчинках, но я не делал, но это осложняет связь между двумя формами. Есть ли способ предотвратить кнопку действия, чтобы вызвать проверку всей страницы мастера? Или лучше построить какие -то вложенные формы? Если да, то как сделать это лучше всего? Я также попытался искать способ предотвратить проверку Actionbutton. Я ожидаю, что проверка произойдет только в том случае, если я нажимаю на Wizards Next, а не на действиях в форме.

Подробнее здесь: https://stackoverflow.com/questions/794 ... nt-subform
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»