namespace App\Filament\Pages;
...
use App\Models\Enrollment;
...
class MyClasses extends Page
{
public $open_enrollments;
#[Computed]
public function enrollments()
{
$user = Auth::user();
$user->loadMissing(['enrollments.course.nextEvent']);
return $user->enrollments;
}
public function assignStudent(): Action {
return EditAction::make('assignStudent')
->label('Assign Student')
->record(function (array $arguments) {
return $arguments['enrollment'] ?? null;
})
->schema([
Select::make('student_id')
->createOptionForm(fn (Schema $schema) => StudentForm::configure($schema, auth()->id()))
->relationship('student', 'id', function(Builder $query) {
return $query->where('user_id', auth()->id());
})
]);
}
public function mount() {
$this->open_enrollments = collect();
$this->enrollments->each(function (Enrollment $enrollment) {
if (!$enrollment->student_id) {
$this->open_enrollments->push($enrollment);
}
});
}
}
namespace App\Filament\Pages;
...
use App\Models\Enrollment;
...
class MyClasses extends Page
{
public $open_enrollments;
#[Computed]
public function enrollments()
{
$user = Auth::user();
$user->loadMissing(['enrollments.course.nextEvent']);
return $user->enrollments;
}
public function assignStudent(): Action {
return EditAction::make('assignStudent')
->label('Assign Student')
->record(function (array $arguments) {
return $arguments['enrollment'] ?? null;
})
->schema([
Select::make('student_id')
->createOptionForm(fn (Schema $schema) => StudentForm::configure($schema, auth()->id()))
->relationship('student', 'id', function(Builder $query) {
return $query->where('user_id', auth()->id());
})
]);
}
public function mount() {
$this->open_enrollments = collect();
$this->enrollments->each(function (Enrollment $enrollment) {
if (!$enrollment->student_id) {
$this->open_enrollments->push($enrollment);
}
});
}
}