Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
de57157
commit 64fc945
Showing
2 changed files
with
36 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# AfterSave Behavior | ||
|
||
A CakePHP behavior to allow the entity to be available inside afterSave() callback. | ||
|
||
## Introduction | ||
It takes a clone of the entity from beforeSave(). This allows all the | ||
info on it to be available in the afterSave() callback or from the outside without resetting (dirty, ...). | ||
|
||
### Technical limitation | ||
Make sure you do not further modify the entity in the table's beforeSave() then. As this would | ||
not be part of the cloned and stored entity here. | ||
|
||
## Usage | ||
Attach it to your model's `Table` class in its `initialize()` method like so: | ||
```php | ||
$this->addBehavior('Tools.AfterSave', $options); | ||
``` | ||
|
||
Then inside your table you can do: | ||
```php | ||
public function afterSave(Event $event, EntityInterface $entity, ArrayObject $options) { | ||
$entityBefore = $this->getEntityBeforeSave(); | ||
// Now you can check isDirty() etc | ||
} | ||
``` | ||
|
||
The same call could also be made from the calling layer/object on the table: | ||
```php | ||
$table->saveOrFail(); | ||
$entityBefore = $table->getEntityBeforeSave(); | ||
``` | ||
|
||
If you are using save(), make sure you check the result and that the save was successful. | ||
Only call this method after a successful save operation. | ||
Otherwise, there will not be an entity stored and you would get an exception here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters