Skip to content

Commit 63e5833

Browse files
authored
Merge pull request #703 from ReWiG/patch-51
Update events.md
2 parents 4442512 + cf7c28a commit 63e5833

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

events.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
git: e75354ea889c0d73fcc77fe28c3f8aa13407955d
2+
git: e6652f21e123688f6abf128b85a7f96dd7eceeb4
33
---
44

55
# События (Events)
@@ -781,6 +781,26 @@ class OrderShipped implements ShouldDispatchAfterCommit
781781
}
782782
```
783783

784+
<a name="deferring-events"></a>
785+
### Отсрочка событий
786+
787+
Отложенные события позволяют отложить отправку событий модели и выполнение прослушивателей событий до завершения определённого блока кода. Это особенно полезно, когда необходимо гарантировать, что все связанные записи будут созданы до срабатывания прослушивателей событий.
788+
789+
Чтобы отложить события, предоставьте замыкание для метода `Event::defer()`:
790+
791+
```php
792+
use App\Models\User;
793+
use Illuminate\Support\Facades\Event;
794+
795+
Event::defer(function () {
796+
$user = User::create(['name' => 'Victoria Otwell']);
797+
798+
$user->posts()->create(['title' => 'My first post!']);
799+
});
800+
```
801+
802+
Все события, инициированные в замыкании, будут отправлены после его выполнения. Это гарантирует, что прослушиватели событий будут иметь доступ ко всем связанным записям, созданным во время отложенного выполнения. Если в замыкании возникнет исключение, отложенные события не будут отправлены.
803+
784804
<a name="event-subscribers"></a>
785805
## Подписчики событий
786806

0 commit comments

Comments
 (0)