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

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

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

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

Q&A

解決済

1回答

487閲覧

laravelのログインでメール以外を使う時の設定を知りたい

lkjgffh

総合スコア37

Laravel 5

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

0グッド

0クリップ

投稿2017/12/21 09:57

###前提・実現したいこと
現在adminユーザーと言うユーザーでログインできるように機能実装しています
ユーザー登録はできました

このadminユーザーでのログインの場合メールではなく電話番号を使いたいと思っています

###発生している問題・エラーメッセージ

BadMethodCallException Method [validateTelephoneNumber] does not exist. /home/vagrant/code/LoginTest/LoginTest/vendor/laravel/framework/src/Illuminate/Validation/Validator.php } /** * Handle dynamic calls to class methods. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { $rule = Str::snake(substr($method, 8)); if (isset($this->extensions[$rule])) { return $this->callExtension($rule, $parameters); } throw new BadMethodCallException("Method [$method] does not exist."); } }

###該当のソースコード
コントローラーです。冒頭でuse Auth;としています

public function postLogin(Request $request) { $this->validate($request,[ 'telephone_number' => 'telephone_number|required', 'password' => 'required|min:4' ]); if(Auth::attempt(['telephone_number' => $request->input('telephone_number'), 'password' => $request->input('password')])){ return redirect()->route('admin.profile'); } return redirect()->back(); }

###試したこと
こちらの公式ページに
https://readouble.com/laravel/5.5/ja/authentication.html

ユーザー名のカスタマイズ デフォルトでLaravelはemailフィールドを認証に利用します。これをカスタマイズしたい場合は、LoginControllerでusernameメソッドを定義してください。 public function username() { return 'username'; }

と言うふうにありましたのでLoginControllerを

public function username() { return 'telephone_number'; }

と言うふうに変更しました
ですが結果は変わらずです。

config auth.phpには

'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ],

と、追記しています

今回の場合、電話番号を認証に使えるようにする設定が足りていないと言うことなのでしょうか?LoginControllerなどの設定で間違っている部分、足りていない部分など気がつかれました空がいらっしゃいましたらご指摘いただけないでしょうか

よろしくお願いいたします

###補足情報(言語/FW/ツール等のバージョンなど)
Laravel5.5
DB Mysql

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずは…telephone_numberというvalidationはデフォルトでは存在しません。
それが原因でエラーとなっているのではないでしょうか??

'telephone_number' => 'telephone_number|required',//ここがエラーでは?

カスタムバリデータは作成済みですか?
作成していない、または作り方が分からない場合はこのサイトカスタムバリデーションルール を参照してtelephone_numberを作る必要があると思います。

投稿2017/12/21 10:13

motuo

総合スコア3027

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

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

lkjgffh

2017/12/22 03:31

なるほど、そちらも書かないといけないのですね。 ご指摘ありがとうございます。実装できたわけではありませんが、さらに質問する場合ごっちゃになってしまうので一旦クローズいたします ご指摘ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問