mirror of
https://github.com/yiisoft/yii2.git
synced 2025-10-30 01:56:35 +08:00
Fixes #16377: Fixed yii\base\Event:off() undefined index error when event handler does not match
This commit is contained in:
committed by
Alexander Makarov
parent
858d3531ed
commit
ca3c8da503
@ -164,19 +164,21 @@ class Event extends BaseObject
|
||||
|
||||
// wildcard event names
|
||||
$removed = false;
|
||||
foreach (self::$_eventWildcards[$name][$class] as $i => $event) {
|
||||
if ($event[0] === $handler) {
|
||||
unset(self::$_eventWildcards[$name][$class][$i]);
|
||||
$removed = true;
|
||||
if (isset(self::$_eventWildcards[$name][$class])) {
|
||||
foreach (self::$_eventWildcards[$name][$class] as $i => $event) {
|
||||
if ($event[0] === $handler) {
|
||||
unset(self::$_eventWildcards[$name][$class][$i]);
|
||||
$removed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($removed) {
|
||||
self::$_eventWildcards[$name][$class] = array_values(self::$_eventWildcards[$name][$class]);
|
||||
// remove empty wildcards to save future redundant regex checks :
|
||||
if (empty(self::$_eventWildcards[$name][$class])) {
|
||||
unset(self::$_eventWildcards[$name][$class]);
|
||||
if (empty(self::$_eventWildcards[$name])) {
|
||||
unset(self::$_eventWildcards[$name]);
|
||||
if ($removed) {
|
||||
self::$_eventWildcards[$name][$class] = array_values(self::$_eventWildcards[$name][$class]);
|
||||
// remove empty wildcards to save future redundant regex checks :
|
||||
if (empty(self::$_eventWildcards[$name][$class])) {
|
||||
unset(self::$_eventWildcards[$name][$class]);
|
||||
if (empty(self::$_eventWildcards[$name])) {
|
||||
unset(self::$_eventWildcards[$name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user