Skip to content

Add BackedEnum support for log name#1461

Open
alexanderkroneis wants to merge 1 commit into
spatie:mainfrom
alexanderkroneis:patch-1
Open

Add BackedEnum support for log name#1461
alexanderkroneis wants to merge 1 commit into
spatie:mainfrom
alexanderkroneis:patch-1

Conversation

@alexanderkroneis

@alexanderkroneis alexanderkroneis commented Jun 16, 2026

Copy link
Copy Markdown

Add BackedEnum support for log names

You can now use a string- or int-backed enum as a log name. The enum's value
is stored in the database.

enum LogName: string
{
    case Orders = 'orders';
    case Auth = 'auth';
}

// Writing
activity(LogName::Orders)->log('Order placed');   // log_name => 'orders'
activity()->useLog(LogName::Auth)->log('Login');

// Querying
Activity::inLog(LogName::Orders)->get();
Activity::inLog(LogName::Orders, LogName::Auth)->get();

By default log_name reads back as a string. To hydrate it back into an enum, set the class in the config:

  // config/activitylog.php
  'default_log_enum' => \App\Enums\LogName::class,

  Activity::all()->last()->log_name; // LogName::Orders

Note

default_log_enum is global, so only one enum applies. Log names that aren't one of its values (e.g. default) come back as plain strings.

@alexanderkroneis alexanderkroneis marked this pull request as draft June 16, 2026 14:08
@alexanderkroneis alexanderkroneis changed the title Patch 1 Add BackedEnum support for log name Jun 16, 2026
@alexanderkroneis alexanderkroneis marked this pull request as ready for review June 16, 2026 14:37
@alexanderkroneis

Copy link
Copy Markdown
Author

@claude Can you review what I submitted? Think about edge cases, breaking changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant