私はlaravelを学ぶことができるように店を建てています。 ほとんどのストアと同様、ユーザーはカートにアイテムを追加できますが、登録するまでチェックアウトすることはできません。 どのように私は、同じルートが許可されたときにユーザー名を返すようにし、許可されていないときには何も返さない。 は、この最初に私には非常に簡単に見えた:laravel authミドルウェア:1つのルート、2つのビュー
@if(Auth::guest())
Nothing || or login/register buttons
@else
{{ Auth::user()->name }}
@endif
だけ忠実なユーザーに表示されなければならない内容を持っていますが、店のために、あなたが提供していただきましたが参照するには、ユーザーが必要なときにうまく動作すること。
私のホームコントローラでは、Route::get('/',[email protected]);
がビューを返し、ビューで@if(Auth::guest()) ...
を使用するようにコンストラクタ関数にミドルウェア認証を追加する必要がありますが、このミドルウェアを追加すると、このルートにアクセスできない認証されておらず、それがなければyou get this issueです。
認証されていないユーザーからのルートをブロックせずに、認証されたユーザーデータ(if authenticated)
と同じルートルートを使用するにはどうすればよいですか。
公開ルートに 'auth'ミドルウェアを置いてはいけません。あなたの質問にあるように' @if @ else'ブロックを使います。あなたが疑問に思っていることは本当にわかりません。あなたがリンクしている質問の問題は、さまざまなミドルウェアに関するものです。「ウェブ」 – Steve
私はあなたが何を意味するのか完全に知りませんか? Auth :: check()?ユーザーが認証されているかどうかを確認します。 – Birdy
@Birdy&@Steve、はい、ルートに認証ミドルウェアがない場合は動作しません。あなたがeBayにいる場合、eBayに行く、urlはebay.com、ログインはsignin.ebay.com/...、ログイン後urlはebay.comでebay.com/homeまたはebay.comではない。/authenticated-user。パブリックデータと認証のみのデータがある場合、 '' 'php artisan make:auth''にあるデフォルトのlaravel authは機能します。この場合、すべてのデータは公開されていますが、ユーザーはより多くのアクセス権を得るためにアカウントを所有している可能性があります。gチェックアウト – user3533087