Education template
Enroll a student with guardian and medical details in one form
Import a Laravel student enrollment form for Filament, collect guardian and medical details, then route each submission to school staff.
Updated
This Laravel student enrollment form gives families one place to provide student, guardian, and medical consent details. Import the template into FilaForms, then use the field table below as the starting structure for enrollment in the application your school runs.
After a family submits the form, the response enters the submission dashboard for staff review. Your Laravel application can route the student's email, medical conditions, and signature to the school's review workflow. The imported template keeps those details together without requiring a hand-written Filament schema.
The field table below groups information according to the decisions staff make after submission. Guardian details support follow-up. Medical details give the receiving team context for safe review. Consent information makes it clear which part of the response requires a school process beyond ordinary data entry.
Application forms have a 51.6% starter-to-completion rate, according to Zuko Analytics form benchmarking, 2026. Keep the form focused on enrollment decisions. Explain why sensitive information is requested before a family reaches the final submission step.
FilaForms is a Laravel form builder for Filament when school staff need to manage the imported form inside their application. The visual builder lets them adjust the template in the panel. Your application code remains responsible for the enrollment workflow that follows.
Fields in this template (17 fields, 10 required)
Field types used: Text, Date, Select, Textarea, Email, Phone Number, Radio, Tags Input, Toggle, Signature. Every field is editable in the builder after import.
Student
| Field | Type | Required | Validation |
|---|---|---|---|
Student Full Name
student_name
|
Text | Yes |
required |
Date of Birth
date_of_birth
|
Date | Yes |
required |
Year Group
year_group
|
Select, 12 options | Yes |
required |
Previous School
previous_school
|
Text | No | none |
Home Address
address
|
Textarea | Yes |
required |
Guardian
| Field | Type | Required | Validation |
|---|---|---|---|
Guardian Name
guardian_name
|
Text | Yes |
required |
Relationship
relationship
|
Select, 5 options | Yes |
required |
Email Address
email
|
Yes |
required | email |
|
Phone Number
phone
|
Phone Number | Yes |
required |
Second Guardian Phone
guardian_phone_2
|
Phone Number | No | none |
Preferred Contact Method
contact_method
|
Radio, 3 options | No | none |
Health and Consent
| Field | Type | Required | Validation |
|---|---|---|---|
Medical Conditions
medical_conditions
|
Textarea | No | none |
Allergies
allergies
|
Tags Input | No | none |
Doctor's Surgery
doctor
|
Text | No | none |
Consent to Emergency Treatment
medical_consent
|
Toggle | Yes |
required |
Consent to Photography
photo_consent
|
Toggle | No | none |
Guardian Signature
signature
|
Signature | Yes |
required |
Route enrollment submissions in your Laravel app
Treat a submitted enrollment form as an intake record, not proof that a student has completed enrollment. A school may still need to verify documents, confirm placement, check capacity, or contact a guardian. Keep the original submission available while staff complete those decisions.
Assign a clear owner to each new submission. A registrar may review identity and guardian details first. A school nurse or designated reviewer may need to assess medical conditions separately. The same person does not need access to every part of every response. Route work to the appropriate protected process instead of copying the full submission into email.
Keep the field table as the shared definition of what the template collects. Do not repeat its fields in separate staff documentation. When the school changes a question, review the listener, downstream notifications, and any records created from the response. That review prevents a revised field from silently breaking a routing rule.
FilaForms emits FormSubmitted after a family submits the form. The listener below reads email, medical_conditions, and signature from the submission data. It records a small event for the workflow that assigns or alerts the right school staff.
Save the listener as app/Listeners/RouteStudentEnrollment.php. Laravel discovers listeners in app/Listeners automatically.
<?php
namespace App\Listeners;
use FilaForms\Core\Events\FormSubmitted;
use Illuminate\Support\Facades\Log;
final class RouteStudentEnrollment
{
public function handle(FormSubmitted $event): void
{
$data = $event->submission->data;
$email = $data['email'] ?? null;
$medicalConditions = $data['medical_conditions'] ?? null;
$signature = $data['signature'] ?? null;
Log::info('Student enrollment submitted', [
'form_id' => $event->form->getKey(),
'submission_id' => $event->submission->getKey(),
'email' => $email,
'medical_conditions' => $medicalConditions,
'signature' => $signature,
]);
}
}
Replace the logging destination with the workflow your school already uses. You might create a review task, notify an internal queue, or attach the submission to a pending enrollment record. Preserve the submitted response as the source record. Link later records back to it so staff can check exactly what the family provided.
Avoid making medical conditions a general-purpose note in the student record before an appropriate reviewer confirms how the school should use them. The enrollment response reflects what a family submitted at one point in time. A verified health plan, accommodation record, or emergency procedure may require its own owner, access rules, and review process.
Some schools use a separate system for formal consent or signatures. Remove the signature field in that case. Route the form to your school's existing e-signature integration instead. The enrollment response can establish the details needed for that next step without presenting an ordinary form field as the final authorization.
The signature field is not a legally binding e-signature. It does not replace a school's official enrollment or consent process. Keep the official process separate when law, policy, or your school's records requirements call for a specific authorization method.
Use the settings block to decide who can receive notifications and how staff review incoming responses. Build conditional questions only when the answer changes a real operational decision. Extra questions create more review work and increase the chance that staff handle information they do not need.
This template is the wrong tool when the school needs a legally binding e-signature as part of enrollment or consent. It collects the initial information and supports a handoff. It does not provide that formal authorization itself. Review the FilaForms features for Laravel and Filament when the workflow needs conditional questions, multi-step collection, notifications, or submission reporting.
Use this template in your own application
With FilaForms installed, one call creates the form with every field, rule, and setting listed above. Then edit it in the builder.
use FilaForms\Core\Support\FormTemplates;
$form = FormTemplates::createFormFromTemplate('student-enrollment');
Template schema (JSON)
{
"name": "Student Enrollment Form",
"description": "Enroll students with guardian, medical and consent details",
"icon": "heroicon-o-academic-cap",
"category": "Education",
"popularity": "Very High",
"sections": [
{
"name": "Student",
"fields": [
{
"label": "Student Full Name",
"type": "text",
"code": "student_name",
"required": true,
"width": "50"
},
{
"label": "Date of Birth",
"type": "date",
"code": "date_of_birth",
"required": true,
"width": "50"
},
{
"label": "Year Group",
"type": "select",
"code": "year_group",
"required": true,
"options": [
{
"value": "Reception"
},
{
"value": "Year 1"
},
{
"value": "Year 2"
},
{
"value": "Year 3"
},
{
"value": "Year 4"
},
{
"value": "Year 5"
},
{
"value": "Year 6"
},
{
"value": "Year 7"
},
{
"value": "Year 8"
},
{
"value": "Year 9"
},
{
"value": "Year 10"
},
{
"value": "Year 11"
}
],
"width": "50"
},
{
"label": "Previous School",
"type": "text",
"code": "previous_school",
"required": false,
"width": "50"
},
{
"label": "Home Address",
"type": "textarea",
"code": "address",
"required": true,
"width": "100"
}
]
},
{
"name": "Guardian",
"fields": [
{
"label": "Guardian Name",
"type": "text",
"code": "guardian_name",
"required": true,
"width": "50"
},
{
"label": "Relationship",
"type": "select",
"code": "relationship",
"required": true,
"options": [
{
"value": "Mother"
},
{
"value": "Father"
},
{
"value": "Grandparent"
},
{
"value": "Legal guardian"
},
{
"value": "Other"
}
],
"width": "50"
},
{
"label": "Email Address",
"type": "email",
"code": "email",
"required": true,
"validation": [
{
"name": "email",
"parameters": []
}
],
"width": "50"
},
{
"label": "Phone Number",
"type": "phone",
"code": "phone",
"required": true,
"width": "50"
},
{
"label": "Second Guardian Phone",
"type": "phone",
"code": "guardian_phone_2",
"required": false,
"width": "50"
},
{
"label": "Preferred Contact Method",
"type": "radio",
"code": "contact_method",
"required": false,
"options": [
{
"value": "Email"
},
{
"value": "Phone"
},
{
"value": "Text message"
}
],
"width": "50"
}
]
},
{
"name": "Health and Consent",
"fields": [
{
"label": "Health Information",
"type": "section-divider",
"code": "health_divider",
"required": false,
"placeholder": "Health Information",
"width": "100"
},
{
"label": "Medical Conditions",
"type": "textarea",
"code": "medical_conditions",
"required": false,
"description": "Shared only with staff who need it",
"width": "100"
},
{
"label": "Allergies",
"type": "tags-input",
"code": "allergies",
"required": false,
"width": "50"
},
{
"label": "Doctor's Surgery",
"type": "text",
"code": "doctor",
"required": false,
"width": "50"
},
{
"label": "Consent to Emergency Treatment",
"type": "toggle",
"code": "medical_consent",
"required": true,
"width": "50"
},
{
"label": "Consent to Photography",
"type": "toggle",
"code": "photo_consent",
"required": false,
"width": "50"
},
{
"label": "Guardian Signature",
"type": "signature",
"code": "signature",
"required": true,
"width": "100"
}
]
}
]
}
Frequently asked questions
- What happens after a student enrollment form is submitted?
- The submission enters the dashboard, where a Laravel listener can route the student's email, medical conditions, and signature to the school's review workflow.
- Can I use this enrollment form with an external e-signature provider?
- Yes. Remove the signature field and route the form to your school's existing e-signature integration instead.
- How do I handle a submitted enrollment form in Laravel?
- Listen for FilaForms\\Core\\Events\\FormSubmitted and read email, medical_conditions, and signature from the submission data.
- Is the signature field a legally binding e-signature?
- No. The signature field is not a legally binding e-signature, and it does not replace a school's official enrollment or consent process.