All notable changes to laravel-model-states
will be documented in this file
- Add default transition config (#159)
- Add
State::getModel()
andState::getField()
- Fix bug on two consecutive transitions (#145)
The biggest change in v2 is that states now know which fields they belong to. So instead of having to pass in fields like so:
$model->canTransitionTo(StateB::class, 'status');
You can now do:
$model->status->canTransitionTo(StateB::class);
This change means that a lot of boilerplate code can be removed. Also keep in mind that this package wants you to always use state objects, and never their serialized values. That's why many other methods have been removed, in favour of Laravel's built-in model casts.
- States aren't configured on models anymore, but on the state class itself. Refer to the docs for more info.
HasStates::transitionableStates(string $fromClass, string $field)
has been removed.State::transitionableStates()
now doesn't need the$field
parameter anymore.HasStates::getStates()
now returns the morph values instead of the hardcoded class names.- Default states are only set on model creations.
State::find()
has been removed.State::isOneOf()
is removed,State::equals
now accepts multiple state objects or morph classes.State::is()
is removed, you should useState::equals()
.- Dropped support for Laravel 5, 6, and 7. The minimal required version is
laravel/framework:^8
- Dropped support for PHP 7.2 and 7.3. The minimal required version is
php:^7.4
- Proper support for
finalState
inStateChanged
event
- add support for PHP 8.0 (#141)
- add support for Laravel 8 (#101)
- Add getters for
TransitionNotFound
attributes (#99)
- Add
canTransitionTo
(#92)
- Support
0
state (#89)
- change
static::
call toself::
for privateState::resolveStateMapping
method (#75)
- add support for Laravel 7
- Add support for fully qualified column names in
whereState
scope (#63)
- ❗️
$finalState
in theStateChanged
event is deprecated and will always be null. This is because of a fix for bug #49. This fix might have unforeseen effects if you're usingStateChanged
.
- Fix for unknown $modelClass variable (#47)
- Return Eloquent model when using transitionTo method directly (#33)
- Add better exceptions and Ignition support (#23)
- Revert 06a4359
- Allow to get transitional states (#17)
- Add state listing methods (#21)
- Proper support for non-string columns
- Proper support for JSON serialise
- Default support via
new
- Improved default support
- Properly handle corrupt state values from the database
- initial release