请教一个laravel $app->singleton的问题
我自定义了一个类
class Custom
{
public function hello(?string $content = null ): void
{
echo $content;
}
}
我在服务提供者里将它注册后
public function register(): void
{
$this->app->singleton('custom',fn() => new Custom());
}
第一次调用是经过中间件调用,打印结果为null
第二次调用是中间件验证正常后,在控制器里使用
public function index()
{
app('custom')->hello('你好');
}
为啥结果还是null
?有大佬知道吗。我知道它返回的是同一个实例,但是我调用的同一个方法,参数不同。为什么同一次请求的第二次调用参数无效呢?
正常来讲provider在过中间件之前注册方法都已经跑过了,而app(‘custom’)没报不存在异常说明已经注册进去了,建议贴出更多代码或者自己打dd或者断点xdebug
测试,最好用返回数据,用正常的laravel方式输出,不要来不来就是echo输出测试啊。laravel会做处理,不一定echo后就是正常的看得到结果
建议创建一个空项目测试, 盲猜你的代码有污染。
一摸一样的代码 laravel6 控制器正常输出 “你好”