Redirect to new slug after updating tenant name

Hi.

I have the below EditTenantProfile set up just like the docs:

//EditTeamProfile.php
class EditTeamProfile extends EditTenantProfile
{
    public static function getLabel(): string
    {
        return 'Team profile';
    }

    public function form(Form $form): Form
    {
        return $form
            ->schema([
                TextInput::make('name'),
                // ...
            ]);
    }
}


Now, I have a slug column on my Team model, that is automatically set based on the name:

//Team.php
public static function boot()
{
    parent::boot();

    static::saving(function ($model) {
        $model->slug = Str::of($model->name)->slug('-');
    });
}


Now, currently, when updating the name of the team, it will result in a 404 page (since the slug is now updated, and thus the old slug no longer exists).

I added this method on the EditTeamProfile.php, but I am unsure if there are other easier ways of doing this?

protected function getRedirectUrl(): ?string
{
    //Update as the slug will be different
    return route('filament.app.tenant.profile', ['tenant' => $this->tenant->slug]);
}
Was this page helpful?