我需要在Controller和Command中执行相同的代码(开始计算)。因此,我想为此使用一个事件,但是我不知道如何在Command中触发事件。 有可能这样做还是有更好的方法呢?
答案 0 :(得分:0)
我找到了一个简单的解决方案...
$table = TableRegistry::getTableLocator()->get('Calculations');
$eventManager = $table->getEventManager();
$event = new Event('Calculation.execute', $table, ['calculation' => $calculation]);
$eventManager->dispatch($event);
我使用TableClass来获取Eventmanger。
答案 1 :(得分:0)
更好的方式:
<?php
use Cake\Event\Event;
use Cake\Event\EventManager;
// ...
$event = new Event('CustomEvent.example', null, ['Pass this', 'Data to event listener']);
$em = new EventManager();
$em->dispatch($event);