为了账号安全,请及时绑定邮箱和手机立即绑定

具有静态值的 Laravel 请求宏

具有静态值的 Laravel 请求宏

PHP
慕标琳琳 2022-12-11 10:33:43
我试图在 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 的答案。


查看完整回答
反对 回复 2022-12-11
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信