質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

5回答

3326閲覧

Laravelで404エラー画面を表示させる際、ヘッダーをログイン後のデザインにしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2020/02/06 06:52

Laravelで自作した404画面を表示させたく、その表示には成功したのですが、ヘッダーの表示がうまくいきません。
ヘッダーはログイン前とログイン後でデザインを分けています。

直面している問題

ログインしているときに404エラー画面を表示しても、ヘッダーがログインしていないときの表示になってしまう。
ホームなどに戻るとログイン後のヘッダーになる。

解決したいこと

ログイン時に404エラー画面を表示させた際、ログイン後に表示されるはずのヘッダーを表示させたい。

試したこと

404画面表示後、ホームなどに戻るとログイン後のヘッダーになるので、404画面のときだけログインをしていないと判断されてしまっていると推測。
user情報が入った変数はログインしているときにはプロバイダーでヘッダーに渡されるようになっているため、もともと@guestを使って認証済かを判断していたものを、user情報が入った変数があるかどうかで判断するようにした。
しかし、404画面にとぶとそもそも変数が存在していないので、やはりログインされていないものとみなされている。

詳しい方、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/02/06 07:03

実際のコードをご提示ください
m.ts10806

2020/02/06 08:06

やってみたけど、とコメントされてもそれが回答者の意図通りになってるかは誰も確認できません。 きちんとコードを提示してください。 推測ばかり飛んでは問題解決は進みません。
guest

回答5

0

@auth() // 認証後のみ描画 @endauth @guest // 未認証の時のみ描画 @endguest

でも切り分けられます。

投稿2020/02/06 07:07

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/06 07:11

現在そのように切り分けているんですが、ログイン中に404画面に飛ぶと未認証のときのヘッダーが描画されてしまいます。例外エラーが出た際はログアウトしているとみなされてしまうのでしょうか?
mikkame

2020/02/06 07:20

確かに・・・error系ページはauthmiddlwareが通ってないみたいな感じですかね・・
guest

0

blade

1@if (Auth::check()) 2 // ログイン後のデザイン 3@endif

投稿2020/02/06 06:58

sola-msr

総合スコア876

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/06 07:12

ご指摘の通りにやってみましたが、やはりログアウト時のヘッダーが出力されてしまいます。 例外エラーの際はログインしているとみなされないのでしょうか。
sola-msr

2020/02/06 08:43

んーその辺試したことないので何ともですが、ページを返す前にログイン後の状態を判定してViewに渡して、表示させる際にそのフラグを使って表示させる・させないの処理を書くとかでしょうか
guest

0

自分の環境(Laravel 6)ではKernel.phpにて

  • $middlewareに\Illuminate\Session\Middleware\StartSession::classを追加
  • $middlewareGroups['web']の\Illuminate\Session\Middleware\StartSession::classをコメントアウト

とする事で解決しました。

投稿2020/07/03 16:58

qwertyuiop

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

僕の環境(Laravel 6.18.20)では、
app/Http/Kernel.phpの中にある$middleware配列に対して、新しく

php

1\Illuminate\Session\Middleware\StartSession::class, 2\Illuminate\View\Middleware\ShareErrorsFromSession::class, 3```の2つを追加したらエラーページでもちゃんと表示されました。 4 5参考: [Laravel can't see if a user is logged in on 404 error page](https://stackoverflow.com/questions/42418507/laravel-cant-see-if-a-user-is-logged-in-on-404-error-page)

投稿2020/06/22 11:43

編集2020/06/22 11:45
qwertyuiop

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Laravelでエラー時に表示するページのカスタマイズ - Qiita

php

1public function render($request, Exception $e) { 2 if($this->isHttpException($e)) { 3 if($e->getStatusCode() == 404) { 4 return response()->view('custome_error_404'); 5 } 6 } 7 return parent::render($request, $e); 8}

上記の方法で、404エラーのときだけハンドリングしてエラーページを 404.blade.php 以外に設定することができます。
エラーが発生した時点でAuthの確認を通っていない可能性があるので、通常のBladeファイルで試してみてはいかがでしょうか。

投稿2020/02/06 07:31

編集2020/02/06 07:34
Tatsuki-sth

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/06 08:02

ご指摘の通り、エラーが発生した時にAuthの確認が通っていないのだと思います。 エラーが発生した時点でログインしているかどうか判断するにはどうすれば良いのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問