我试图在 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 关注
- 77 浏览
添加回答
举报
0/150
提交
取消