| Package Data | |
|---|---|
| Maintainer Username: | antonkomarev |
| Maintainer Contact: | anton@komarev.com (Anton Komarev) |
| Package Create Date: | 2016-09-26 |
| Package Last Update: | 2025-02-22 |
| Home Page: | https://komarev.com/sources/laravel-eloquent-flag |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-10-27 15:02:21 |
| Package Statistics | |
|---|---|
| Total Downloads: | 16,899 |
| Monthly Downloads: | 409 |
| Daily Downloads: | 7 |
| Total Stars: | 134 |
| Total Watchers: | 5 |
| Total Forks: | 20 |
| Total Open Issues: | 8 |

Eloquent boolean & timestamp flagged attributes behavior. Enhance Eloquent Models with commonly used state flags like Active, Published, Approved and others in a minutes!
Classic, Inverse.Boolean, Timestamp.bool & DateTime.| Trait name | Logic | Database column | Flag type | Conflict |
| ---------- | ----- | ---------------- | --------- | -------- |
| HasAcceptedAt | Classic | accepted_at | Timestamp | HasAcceptedFlag |
| HasAcceptedFlag | Classic | is_accepted | Boolean | HasAcceptedAt |
| HasActiveFlag | Classic | is_active | Boolean | - |
| HasApprovedAt | Classic | approved_at | Timestamp | HasApprovedFlag |
| HasApprovedFlag | Classic | is_approved | Boolean | HasApprovedAt |
| HasArchivedAt | Inverse | archived_at | Timestamp | HasArchivedFlag |
| HasArchivedFlag | Inverse | is_archived | Boolean | HasArchivedAt |
| HasClosedAt | Inverse | closed_at | Timestamp | HasClosedFlag |
| HasClosedFlag | Inverse | is_closed | Boolean | HasClosedAt |
| HasDraftedAt | Inverse | drafted_at | Timestamp | HasDraftedFlag |
| HasDraftedFlag | Inverse | is_drafted | Boolean | HasDraftedAt |
| HasEndedAt | Inverse | ended_at | Timestamp | HasEndedFlag |
| HasEndededFlag | Inverse | is_ended | Boolean | HasEndedAt |
| HasExpiredAt | Inverse | expired_at | Timestamp | HasExpiredFlag |
| HasExpiredFlag | Inverse | is_expired | Boolean | HasExpiredAt |
| HasInvitedAt | Classic | invited_at | Timestamp | HasInvitedFlag |
| HasInvitedFlag | Classic | is_invited | Boolean | HasInvitedAt |
| HasKeptFlag | Classic | is_kept | Boolean | - |
| HasPublishedAt | Classic | published_at | Timestamp | HasPublishedFlag |
| HasPublishedFlag | Classic | is_published | Boolean | HasPublishedAt |
| HasVerifiedAt | Classic | verified_at | Timestamp | HasVerifiedFlag |
| HasVerifiedFlag | Classic | is_verified | Boolean | HasVerifiedAt |
Any entity can has more than one flag at the same time. If flags can't work for the same entity simultaneously they are listed in Conflict column.
Eloquent Flag is an easy way to add flagged attributes to eloquent models. All flags has their own trait which adds global scopes to desired entity.
There are 2 types of flags:
Boolean flags are the common ones. Stored in database as BOOLEAN or TINYINT(1) value.Timestamp flags represented in database as nullable TIMESTAMP column. Useful when you need to know when action was performed.All flags separated on 2 logical groups:
Classic flags displays only entities with true or timestamp flag value by default.Inverse flags displays only entities with false or null flag value by default.Omitted entities could be retrieved by using special global scope methods, unique for each flag.
Example: If your
Articlemodel hasPublishedAtflag thenArticle::get()will return you only published records. When you need to get only unpublished records you could callArticle::onlyUnpublished()->get()andArticle::withUnpublished()->get()will return you published and unpublished articles as well.
Helper traits will automatically cast flag attributes to a DateTime / Carbon instance or bool for you.
Pull in the package through Composer.
$ composer require cybercog/laravel-eloquent-flag
Usage examples described in Wiki
Please see CHANGELOG for more information on what has changed recently.
Please see UPGRADING for detailed upgrade instructions.
Please see CONTRIBUTING for details.
Run the tests with:
$ vendor/bin/phpunit
If you discover any security related issues, please email open@cybercog.su instead of using the issue tracker.
| Anton Komarev |
zagreusinoz |
Jona Goldman |
Irfaq Syed |
gpioto |
| :---: | :---: | :---: | :---: | :---: |
Eloquent Flag contributors list
Feel free to add more alternatives as Pull Request.
Laravel Eloquent Flag package is open-sourced software licensed under the MIT license by Anton Komarev.Clock image licensed under Creative Commons 3.0 by Rudez Studio.CyberCog is a Social Unity of enthusiasts. Research best solutions in product & software development is our passion.