laravel 自定义服务,如何实现注入依赖?

通过ServiceContainer, ServiceProvider, 建立了一个自定义的服务,请问如何在服务中使用依赖注入,比如 Request, User,Cookie等

class UsersController extends BaseController
{
    public function show(UserService $userService, $id)
    {
        $userService->register();
    }
}

这个是控制器,,调用UserService这个自定义服务

4E0F9D73-1E8E-462B-99FA-7112DF52F0F5.jpg

在Provider中进行绑定

729BAF00-8EBD-4347-8083-D4AA47C4FB31.jpg

如果不依赖注入其他类,这样直接使用是可以的

993034C5-20EC-4CB0-AA4E-2E47506CA3E6.jpg

但是加上了Request注入就失败,提示找不到

@newborn

如果我的理解沒錯誤,Controller可以直接注入Request,是因為Laravel內部本身其實有傳Request instance給action,只是它是寫好的,翻一下Illuminate\Routing\Router.php看一下就可以知道原理

所以如果你想要你的Service能處理一些Controller的事情,還是在Controller裡面分派參數給他會比較好

class UserController extends BaseController {

    function someAction(Request $request, MyService $service) {
        $service->someMethod($request)
    }

}
JellyBool
修改的评论也不能少于六个字哦!
snail
修改的评论也不能少于六个字哦!
newborn
修改的评论也不能少于六个字哦!
JellyBool
修改的评论也不能少于六个字哦!
Tomoe
修改的评论也不能少于六个字哦!
newborn
修改的评论也不能少于六个字哦!