Download the PHP package sebastiaanluca/laravel-boolean-dates without Composer
On this page you can find all versions of the php package sebastiaanluca/laravel-boolean-dates. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sebastiaanluca/laravel-boolean-dates
More information about sebastiaanluca/laravel-boolean-dates
Files in sebastiaanluca/laravel-boolean-dates
Package laravel-boolean-dates
Short Description Automatically convert Eloquent model boolean attributes to dates (and back).
License MIT
Homepage https://github.com/sebastiaanluca/laravel-boolean-dates
Informations about the package laravel-boolean-dates
Convert Eloquent boolean attributes to dates (and back)
Automatically convert Eloquent model boolean fields to dates (and back to booleans) so you always know when something was accepted or changed.
Say you've got a registration page for users where they need to accept your terms and perhaps can opt-in to certain features using checkboxes. With the new(-ish) GDPR privacy laws, you're somewhat required to not just keep track of the fact if they accepted those (or not), but also when they did.
Example
User registration controller:
Anywhere else in your code:
Table of contents
- Requirements
- How to install
- How to use
- Saving dates
- Clearing saved values
- Retrieving values
- Retrieving fields as booleans
- Retrieving fields as datetimes
- Array conversion
- License
- Change log
- Testing
- Contributing
- Security
- Credits
- About
Requirements
- PHP 8.1 or 8.2
- Laravel 10
How to install
Add the package to your project using composer:
Set up your Eloquent model by:
- Adding your datetime columns to the
$casts
property orcasts()
method - Adding the boolean attributes to
$appends
- Creating attribute accessors and mutators for each field
Optionally, if your database table hasn't got the datetime columns yet, create a migration to create a new table or alter your existing table to add the timestamp fields:
How to use
Saving dates
If a boolean date field's value is true-ish, it'll be automatically converted to the current datetime. You can use anything like booleans, strings, positive integers, and so on.
All fields should now contain a datetime similar to 2018-05-10 16:24:22
.
Note that the date stored in the database column is immutable, i.e. it's only set once. Any following updates will not change the stored date(time), unless you update the date column manually or if you set it to false
and back to true
(disabling, then enabling it).
For example:
Clearing saved values
Of course you can also remove the saved date and time, for instance if a user retracts their approval:
False or false-y values are converted to NULL
.
Retrieving values
Retrieving fields as booleans
Use a boolean field's defined key to access its boolean value:
Retrieving fields as datetimes
Use a boolean field's defined value to explicitly access its (Carbon) datetime value:
Array conversion
When converting a model to an array, the boolean fields will be included if you've added them to the $appends
array in your model.
License
This package operates under the MIT License (MIT). Please see LICENSE for more information.
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
Contributing
Please see CONDUCT for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Sebastiaan Luca
- All Contributors
About
My name is Sebastiaan and I'm a freelance back-end developer specializing in building custom Laravel applications. Check out my portfolio for more information, my blog for the latest tips and tricks, and my other packages to kick-start your next project.
Have a project that could use some guidance? Send me an e-mail at [email protected]!
All versions of laravel-boolean-dates with dependencies
illuminate/database Version ^10.0|^11.0
illuminate/support Version ^10.0|^11.0