diff --git a/app/Http/Controllers/StudentController.php b/app/Http/Controllers/StudentController.php
index 1b24434..32ff1e9 100644
--- a/app/Http/Controllers/StudentController.php
+++ b/app/Http/Controllers/StudentController.php
@@ -51,6 +51,7 @@ class StudentController extends Controller
new UniqueFullNameAtSchool(request('first_name'), request('last_name'), Auth::user()->school_id),
],
'grade' => ['required', 'integer'],
+ 'shirt_size' => ['nullable'],
]);
$student = Student::create([
@@ -59,6 +60,9 @@ class StudentController extends Controller
'grade' => request('grade'),
'school_id' => Auth::user()->school_id,
]);
+ if (request('shirt_size') !== 'none') {
+ $student->update(['optional_data->shirt_size' => $request['shirt_size']]);
+ }
$message = 'Created student #'.$student->id.' - '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
diff --git a/app/Models/Student.php b/app/Models/Student.php
index dece4dd..67ae150 100644
--- a/app/Models/Student.php
+++ b/app/Models/Student.php
@@ -14,6 +14,13 @@ class Student extends Model
protected $guarded = [];
+ protected function casts(): array
+ {
+ return [
+ 'optional_data' => 'array',
+ ];
+ }
+
public function school(): BelongsTo
{
return $this->belongsTo(School::class);
diff --git a/resources/views/students/index.blade.php b/resources/views/students/index.blade.php
index 090f5f4..a2b1968 100644
--- a/resources/views/students/index.blade.php
+++ b/resources/views/students/index.blade.php
@@ -10,7 +10,6 @@