我試圖在 Request 宏中創建一個延遲加載模式,該模式將在請求的生命周期內緩存值。我把它放在我的App\Providers\RouteServiceProvider boot()函數中:Request::macro('foo', function() { static $bar; if (is_null($bar)) { $bar = 'was not null'; return 'was null'; } return $bar;});每次我打電話request()->foo()或Request::foo()它返回“為空”。我的問題有兩個:我應該如何完成這個模式?為什么它不像寫的那樣工作?
1 回答

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
我發現我可以通過這種方式完成模式:
Request::macro('foo', function() {
if (! isset(request()->bar)) {
request()->bar = 'was not null';
return 'was null';
}
return request()->bar;
});
不過,我還沒有找到#2 的答案。
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消