我目前有一些问题,设置一些依赖注入的新服务,我已经取得。
我试图让PartyRingService
注入到一个构造函数中,而不需要传入它。
我在PartyRingServiceProvider
中尝试了以下操作:
class PartyRingServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
$this->app->singleton('App\Services\PartyRingService', function ($app) {
return new PartyRingService();
});
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
//
}
}
我已经将新的服务提供者添加到config/app.php
的providers数组中:
/*
* Application Service Providers...
*/
......
App\Providers\PartyRingServiceProvider::class,
这是我尝试注入服务的构造函数:
这是我试图在构造函数中使用我的新服务的类:
class Party
{
private PartyRingService $partyRingService;
public function __construct(PartyRingService $partyRingService)
{
$this->partyRingService = $partyRingService;
}
...
}
但是,当我尝试使用PartyService
时,我得到以下错误:
PHP 8.2.7 10.13.5太少的参数来函数App\Party::__construct(),0传入/var/www/html/app/Http/Controller/PartyController. php第28行和确切的1预期
下面是PartyController
的第28行:$party = new Party();
我觉得我只是错过了一个步骤,所以如果有人能帮我确定它,那就太好了,谢谢。
3条答案
按热度按时间wnrlj8wa1#
你必须在你的控制器中使用它:
这对你有用吗
sauutmhj2#
我不是很清楚,但是在解析Party类的时候,是不是应该加上PartyRingService
ryhaxcpt3#
确保您已经在控制器文件的顶部导入了Party类和PartyRingService类:
这假定Party类和PartyRingService类存在于正确的名称空间中。