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

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

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

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

Q&A

解決済

1回答

377閲覧

[Laravel5.1]mailhogを使ってパスワード変更の実装とテストをしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel 5

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

0グッド

0クリップ

投稿2017/09/16 05:46

編集2017/09/16 07:51

Lara帳
こちらを参考にしています。

ページ内のファイルは一通り作ったのですが、

<a href='password/email'>Forgot Your Password?</a>

passwordというディレクトリにemail.blade.phpというものを作ってはいません。
ですので当然ですがForgot Your Password?を押すと

Sorry, the page you are looking for could not be found. NotFoundHttpException in RouteCollection.php line 161:

のエラーが返ってきます。
このような場合どうすれば理解した上で動作させられるでしょうか。ご教示ください。

route:listの結果

| | GET|HEAD | password/email | | App\Http\Controllers\Auth\PasswordController@getEmail | guest | | | POST | password/email | | App\Http\Controllers\Auth\PasswordController@postEmail | guest | | | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@postReset | guest | | | GET|HEAD | password/reset/{token} | | App\Http\Controllers\Auth\PasswordController@getReset | guest |

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

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

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

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

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

guest

回答1

0

ベストアンサー

NotFoundHttpExceptionエラーなので、a要素のhref属性の「http://example.com/password/email」に対する受け側のGETメソッドのルート定義が無いことが考えられます。
php artisan route:list でルート定義を確認してください。
また、LaravelでURLを出力する時は、routeヘルパーかurlヘルパーを使うと URLが絶対パスで補完されるのでより良いです。

投稿2017/09/16 07:35

aro10

総合スコア4106

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

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

退会済みユーザー

退会済みユーザー

2017/09/16 08:17

受け側のGETメソッドのルート定義がない、というのは PasswordControllerに関数定義がないということでいいでしょうか? 自分でドキュメントとLara帳の最初の方に戻って考え直してみたのですが・・・ いつもよりも理解が遅くて申し訳ないです。
aro10

2017/09/16 08:36 編集

PasswordControllerのメソッドの有り無しに関わらず、NotFoundHttpExceptionエラーの原因はルートの定義です。 Lara帳記載の以下のルート定義が機能しているかどうかだと思います。 ``` Route::get('password/email', 'Auth\PasswordController@getEmail'); ``` 上記定義でPasswordControllerのメソッドが無い場合はReflectionExceptionエラーになります。 バグ解決はエラー種類の確認とエラーの直接原因を見定めていかないと範囲が限定されず解決から遠のいてしまいます。あとはAPP_DEBUGを有効にしているとエラーが出た時にスタックトレースと言って関数呼び出しの蓄積状況も出るかと思うので確認すると問題解決に役立ちます。
退会済みユーザー

退会済みユーザー

2017/09/16 09:37 編集

ありがとうございます。 http://qiita.com/michiomochi@github/items/de19c560bc1dc19d698c こちらを参考にして見直していました。 login.blade.phpに <a href='password/email'>Forgot Your Password?</a> とありますが、passwordフォルダにemail.blage.phpというものを作っていません(Lara帳にもないです) 作ったのはemailsフォルダにpassword.blade.phpだったので Route::get('emails/password' ,'Auth\PasswordController@getEmail'); Route::post('emails/password','Auth\PasswordController@postEmail'); このように書き直しましたが、何回か動かすと再び同じエラーが出ました・・。この部分で意図がわからなくて困りました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問