1 回答

TA貢獻(xiàn)1847條經(jīng)驗 獲得超11個贊
在深入研究了框架之后,我想我已經(jīng)找到了“問題”。
您傳遞給偵聽器的數(shù)組應(yīng)該是回調(diào)的參數(shù)。IE)
Event::listen('test', function($foo, $bar, $baz) {
dd($foo, $bar, $baz);
});
event('test', ['foo', 'bar', 'baz']);
當(dāng)你將一個數(shù)組傳遞給 event() 幫助器時,它最終會調(diào)用 Illuminate\Events\Dispatcher 中的 makeListener 來執(zhí)行你的閉包。在該方法中,它調(diào)用您的偵聽器,如下所示:
return $listener(...array_values($payload));
那么原因是:
event('test', [[
'foo' => 'bar',
'asdf' => 'ghjk',
]]);
有效,是因為:
...array_values([[
'foo' => 'bar',
'asdf' => 'ghjk',
]])
就是 ['foo' => 'bar', 'asdf' => 'ghjk']
希望有幫助!其中之一就是找到正確的文檔!
所以回答你的終極問題:
“問題:如果我想將嚴(yán)格數(shù)組傳遞給偵聽器閉包,有沒有辦法避免將我的 var 包裝在另一個數(shù)組中?”
- 1 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報