Laravel Controllers: Dependency Injection & Controllers
Dependency Injection & Controllers
Constructor Injection
You are able to type-hint any dependencies your controller may need in its constructor.
<?php namespace App\Http\Controllers; use App\Repositories\UserRepository; class UserController extends Controller
{ /**
* The user repository instance.
*/ protected $users; /**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/ public function __construct(UserRepository $users)
{ $this->users = $users; } } Method Injection
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller
{ /**
* Store a new user.
*
* @param Request $request
* @return Response
*/ public function store(Request $request)
{ $name = $request->name; // } } A common use-case for method injection is injecting the Illuminate\Http\Request instance into your controller methods.
Related concepts
→
Dependency Injection & Controllers
→
Semantic portal