1
私はLaravel 5.2を使ってWebアプリケーションを開発しています。私はLaravelが依存性注入をサポートしていることを知っています。私はミドルウェアでやっています。しかし、依存関係は注入されず、注入されるクラスのインスタンスは常にnullです。これは私がやったことです。Laravel 5.2のミドルウェアへの依存性を注入できません
これは私がこの
Route::group(['middleware'=>'store'],function(){
Route::get('home','[email protected]');
Route::get('/','[email protected]');
});
私はホーム・ページにアクセスすると、それは私を与えているようにルートをconfigのこの
protected $routeMiddleware = [
.
.
.
'store' =>\App\Http\Middleware\StoreMiddleware::class
];
のようにカーネル内で宣言私のミドルウェア
class StoreMiddleware
{
private $categoryRepo;
function __construct(CategoryRepo $categoryParam)
{
$categoryRepo = $categoryParam;
}
public function handle($request, Closure $next)
{
$categories = $this->categoryRepo->getTreeViewCategories();
view()->share(['categories'=>$categories]);
return $next($request);
}
}
ですこのエラー
FatalThrowableError in StoreMiddleware.php line 20:
Call to a member function getTreeViewCategories() on null
ご覧のとおり、categoryRepoはnullであり、注入されていません。
これは、CategoryRepoモデル内のgetTreeViewCategories()メソッドです。
function getTreeViewCategories()
{
$items = array();
return $items;
}
ご覧のとおり、私はモデルでは注射が機能しているかどうかを確認するために何もしませんでした。私のコードで何が間違っていますか?
ああをuに感謝します。私の間違い。 –