Я пытаюсь добавить несколько пользовательских правил в мою форму создания студента. Я хочу создать ученика в 3 шага один за другим. Если пользователь завершает информацию на первом шаге, то следует только разрешить перейти ко 2-му и так далее к 3-му и создать в конце. Я хочу добиться этой функциональности с помощью пользовательской проверки с использованием файла StoreStudentRequest.php.
Я на самом деле ничего не пробовал, потому что я новичок в laravel прямо сейчас, поэтому мне нужна помощь в создании логики для этой функции
StudentController.php
public function store(StoreStudentRequest $request)
{
$this->studentRepository->create(
[
'bus_id' => $request['bus_id'],
'room_id' => $request['room_id'],
'grade_id' => $request['grade_id'],
'teacher_id' => $request['teacher_id'],
'passport_no' => $request['passport_no'],
'passport_expiry' => $request['passport_expiry'],
//similar fields continues
]);
return redirect()->route('admin.auth.student.index')->withFlashSuccess(__('alerts.backend.students.created'));
}
StoreStudentRequest.php
class StoreStudentRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => ['required'],
'dob' => ['required'],
'gender' => ['required'],
'religion' => ['required'],
'ethnicity' => ['required'],
'nationality' => ['required'],
'guardian_residency_type' => ['required'],
'applicant_qid_no' => ['required'],
'qid_validity' => ['required'],
//similar fields continue
];
}
}
create.blade.php
<div class="card-body">
<div role="tabpanel">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a href="#step-one" class="nav-link active" aria-controls="step-one" role="tab"
data-toggle="tab">@lang('navs.frontend.user.step-one')</a>
</li>
<li class="nav-item">
<a href="#step-two" class="nav-link" aria-controls="step-two" role="tab"
data-toggle="tab">@lang('navs.frontend.user.step-two')</a>
</li>
<li class="nav-item">
<a href="#step-three" class="nav-link" aria-controls="step-three" role="tab"
data-toggle="tab">@lang('navs.frontend.user.step-three')</a>
</li>
</ul>
</div><!--tab panel-->
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade show active pt-3" id="step-one"
aria-labelledby="step-one-tab">
@include('backend.auth.student.show.tabs.step-one')
</div><!--tab panel profile-->
<div role="tabpanel" class="tab-pane fade show pt-3" id="step-two" aria-labelledby="step-two-tab">
@include('backend.auth.student.show.tabs.step-two')
</div><!--tab panel profile-->
<div role="tabpanel" class="tab-pane fade show pt-3" id="step-three"
aria-labelledby="step-three-tab">
@include('backend.auth.student.show.tabs.step-three')
</div><!--tab panel change password-->
</div><!--tab content-->
</div><!--card body-->
Как вы можете видеть в create.blade.php, я преобразовал форму в 3 шага. Теперь я хочу, чтобы на первом шаге пользователь мог вводить, скажем, от имени до поля «имя» и «религия», а затем, если пользователь только заполнил эти поля, затем перейти к следующему шагу заполнения других полей и так далее. Также я хочу добавить функциональность, чтобы дать возможность пользователю сохранять каждый шаг в базе данных, если пользователь решит заполнить форму позже.
Пожалуйста, помогите, если можете