我正在Factures
中进行一项名为App\Services\Factures
的新服务。
我创建了\App\Services\Factures\FacturesServiceProvider
:
public function register() {
$this->app->bind('factures', function ($app) {
return new Facture;
});
}
public function boot() {
// laod Routes
$this->loadRoutesFrom(__DIR__ .'/Http/routes.php');
// load Views
$this->loadViewsFrom(__DIR__ . '/views', 'factures');
}
我注册了我的提供程序,一切正常,期望Auth::user()
返回视图中的null
和routes.php
。
如何在自定义服务中访问Auth()?
答案 0 :(得分:0)
此帖子解决了我的问题:User Auth not persisting within Laravel package
我发现Laravel将一个名为'web'的中间件应用于默认的route / web.php文件,并且不会将此组应用于通过服务提供商加载的外部包路由。
因此,我在自定义文件中的路由应位于web
中间件中:
Route::group(['middleware' => ['web']], function () {
Route::get('testing-services', function(){
dd(Auth::user());
// output is valid
});
});