Php Laravel:方法的服务提供商
我正在构建一个php类,其中一些方法需要一个请求实例 示例:Php Laravel:方法的服务提供商,php,laravel,provider,Php,Laravel,Provider,我正在构建一个php类,其中一些方法需要一个请求实例 示例: static public function warningAlert($message, Request $request) { $request->session()->flash('alert-warning', "$message"); } 我以为服务提供商会提供此实例,但他没有: Argument 2 passed to ...\validatorAlerts() must be an instance
static public function warningAlert($message, Request $request) {
$request->session()->flash('alert-warning', "$message");
}
我以为服务提供商会提供此实例,但他没有:
Argument 2 passed to ...\validatorAlerts() must be an instance of Illuminate\Http\Request, none given
我怎样才能提供给他
PS:我不想使用正面。你可以做如下事情:
app()->call('Classname::warningAlert', [ $message ]);
或者,您可以修改您的方法:
static public function warningAlert($message) {
$request = resolve("request");
$request->session()->flash('alert-warning', "$message");
}
您可以使用helper函数
request()
或者更好,我建议您使用包,这样就没有办法为方法提供实例了?为什么我可以在某个控制器中这样做?@ThomasPetillot这里有经典的
warningAlert($message,resolve(Request::class))
。控制器工作的原因是,在某个点上,框架正在执行类似于app()的操作->解析路由处理程序后调用
。你知道在哪里可以找到有关应用程序调用范围的详细信息吗?@ThomasPetillot不确定我是否理解了这个问题,但总的来说,这是一本关于这里发生的事情的好读物。我相信这其中也有一个更深入的地方。对不起我的英语,我会努力深化我的研究,谢谢你的回答谢谢你的包裹,这正是我正在做的!无论如何,我想找到原始问题的答案:-)@ThomasPetillot您是否尝试request()
获取当前请求的实例?
static public function warningAlert($message) {
request()->session()->flash('alert-warning', "$message");
}