@jlrdw I'm really lost on how to write my code.
Here is what I have tried to do (some extracts of my code)
// questionnaire form
public ?Questionnaire $questionnaire;
#[Validate('nullable', onUpdate: false)]
public $id = null;
#[Validate('required', onUpdate: false)]
public $name = '';
#[Validate('required', onUpdate: false)]
public $groups = [];
public function set(Questionnaire $questionnaire)
{
$this->id = $questionnaire->id;
$this->name = $questionnaire->name;
$this->groups = $questionnaire->groups;
}
// questionnaire form page controller
public QuestionnaireForm $form;
public function mount(Questionnaire $questionnaire)
{
$this->form->set($questionnaire->load('groups.questions'));
}
// questionnaire form page
<form class="flex flex-col gap-4" wire:submit="save()">
<x-form.input type="text" wire:model="form.name">Nom</x-form.input>
@foreach ($form->groups as $group)
<livewire:questionnaires.question-group-form-component :$group></livewire:questionnaires.question-group-form-component>
@endforeach
</form>
// group form
public ?QuestionGroup $group;
#[Validate('nullable', onUpdate: false)]
public $id = null;
#[Validate('required', onUpdate: false)]
public $name = '';
#[Validate('required', onUpdate: false)]
public $questions = [];
// group form component controller
public QuestionGroupForm $form;
public QuestionGroup $group;
public $index;
public function mount()
{
$this->form->set($this->group->load('questions'));
}
// group form component (blade)
<div>
<div class="space-y-2">
<x-form.input
class="font-bold"
type="text"
wire.model="form.name"
>
Groupe {{ $index }}
<x-link-button
class="ml-2 text-red-500 hover:text-red-600 text-sm"
type="button"
wire:click="removeGroup()"
>
Supprimer
</x-link-button>
</x-form.input>
</div>
</div>
It's not working, I don't see the values inside the input fields.
What am I doing wrong ?
Can you help me please ?
I'm searching for the solution for some hours now and I really don't see what I can do.
Thanks a lot.