我有什么:事件吸引了许多听众。
'App\Events\UserStored' => [
'App\Listeners\SendConfirmationEmail',
'App\Listeners\CalculateDiscount',
'App\Listeners\SendPromoEmail'
]
在一个监听器中,我有一些回报:
//CalculateDiscount Listener
public function handle(UserStored $event)
{
//logic
return ['Very important response'];
}
我要获取此退货:
$e = event(new UserStored(...));
但是有一个问题。当侦听器很多时,$e
是一个二维数组:
array:3 [▼
0 => null
1 => array:1 [▶] // <-- ['Very important response']
2 => null
]
问题:直接访问“非常重要的响应”是$e[1]
-实在不灵活。如果我改变
'App\Events\UserStored' => [
'App\Listeners\SendConfirmationEmail',
'App\Listeners\CalculateDiscount',
'App\Listeners\SendPromoEmail'
]
到
'App\Events\UserStored' => [
'App\Listeners\SendConfirmationEmail',
'App\Listeners\OneMoreListener', // <-- new Listener
'App\Listeners\CalculateDiscount',
'App\Listeners\SendPromoEmail'
]
我必须改变
$e = event(new UserStored(...));
$importantResponse = $e[1]; //<-- understandable index
到
$e = event(new UserStored(...));
$importantResponse = $e[2]; //<-- WOW, understandable index
问题:有没有办法得到这样的东西
array:3 [▼
'SendConfirmationEmail' => null
'CalculateDiscount' => array:1 [▶] // <-- ['Very important response']
'SendPromoEmail' => null
]
或至少
array:1 [▼
0 => array:1 [▶] // <-- ['Very important response']
]
没有覆盖很多框架逻辑吗?