Yii2如何判断触发事件成功还是失败

How to know if the triggered events succeed or fail in Yii2

我在Yii2事务中触发了一个事件,我想知道事件处理程序是成功提交事务,还是失败回滚。

全局变量或class const 是正确的方法吗?

我现在所做的是在事件处理程序中抛出错误。

通常您使用事件对象来存储事件的状态。创建自定义事件:

class MyEvent extends Event {

    public $isCommited = false;
}

在触发器上使用它并检查结果:

$event = new MyEvent();
$this->trigger('myEvent', $event);
if ($event->isCommited) {
    // do something
}

在事件处理程序中,您需要设置此 属性:

function ($event) {
    // do something
    $event->isCommited = true;
}

如果您想中断事件流,您可以使用 $handled 属性 而不是 isCommited 和自定义事件。