私のWebページには、ログイン、登録、ログアウトの3つのオプションがあります。Laravel Auth :: check()precheck
たとえば、使用可能なボタンのみを表示する場合は、ユーザーがログインしている場合は、ログアウトボタンを表示したいだけですが、ユーザーがゲストの場合はログインボタンと登録ボタンが必要です。
ここで、ユーザーが認証されていないかどうかを確認するプロバイダを追加しました。ここに私のコードです。
<?php
namespace App\Providers;
use View;
use Auth;
use Illuminate\Support\ServiceProvider;
class ShareServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
echo "Provider boot check ";
var_dump(Auth::check());
if(Auth::check())
{
View::share(['loged_in' => true]);
}
else
{
View::share(['loged_in' => false]);
}
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
ただし、ユーザーは常にゲストとして表示されます。他のコントローラでAuth :: check()を実行すると、すべて正常に動作します。しかし、私はすべてのコントローラでチェックしたくありません。