私は新鮮なLaravel 5.1の配布をしています。 私が最初に始めたのは、私自身のauthドライバを実装するためにGuard
クラスを拡張することでした。私はララベルで本当に新しいです。だから、これまで私がやったことはここにあります。Laravel 5.1セッションが動作しません
のconfig/auth.php
'driver' => 'crm',
プロバイダ/ AuthServiceProvider.php
public function boot(GateContract $gate)
{
Auth::extend(
'crm',
function ($app) {
$model = $app['config']['auth.model'];
$provider = new EloquentUserProvider($app['hash'], $model);
return new CrmGuard($provider, $app->make('session.store'));
}
);
}
現在、私はすでに、ユーザーIDを持つセッション配列に格納されて、私は
経由でアクセスすることができますsession_start();
$_SESSION['user_id'];
しかし、セッション管理でLaravelビルドを使用したいと思います。 私はCrmGuard
クラスでGuard
クラスのuser
メソッドを書き換えしようとしていると私はセッションからこれらの値を取得する必要があり、私はそう
$id = $this->session->get('user_id');
ので
session('user_id')
テスト中にuser
メソッドを呼び出す方法は次のとおりです。
Route::get('/', function() {
\Illuminate\Support\Facades\Auth::user();
//return view('welcome');
});
しかし、それは常にNULLを返します、私は間違っていましたか?ありがとうございました。
は 'web'は次のミドルウェアによってカバーされ、このルートです:代わりにPHPのセッションを使用しての、あなたはここで読むことができます
\Session::get()
とSession::put()
でドライバーにビルドLaravelのセッションでしょうか? 'php artisan route:list'ですぐに確認できます。 – TheFallen私は 'auth'ミドルウェアを使用していると言います。 –
おそらく私は私のルートに 'ミドルウェア' => 'auth'を追加したので、私はすべてのルートを安全にする必要があるので、ミドルウェア=> 'web' –