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

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

ただいまの
回答率

89.69%

ログイン認証画面作成時のエラー

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 833

Nitta

score 85

お世話になってます。
今、認証ログイン画面を作成しています。
Authファザードのattemptメソッドを使用し
メールとパスワード認証したいのですが、
下記のようなエラーが出て困っております。
ご教示お願いできないでしょうか?
<やりたいこと>
ログイン時のパスワード等のチェック

<エラー名>
ReflectionException 
Function () does not exist
(関数がありません)

vendor\laravel\framework\src\Illuminate\Routing\RouteSignatureParameters.phpの22行目
下記参照願います。

public static function fromAction(array $action, $subClass = null)
19.    {
20.        $parameters = is_string($action['uses'])
21.                        ? static::fromClassMethodString($action['uses'])
22.                        : (new ReflectionFunction($action['uses']))->getParameters();**
23. 
24.        return is_null($subClass) ? $parameters : array_filter($parameters, function ($p) use ($subClass) {
25.            return $p->getClass() && $p->getClass()->isSubclassOf($subClass);
26.        });
27.    }
28. 


<試した事>
app/config.php中のAuthクラスの存在は確認済み。
ルーチング内容等を再チェック。

blade

@extends('layouts.master_auth')

@section('content')
 <div class="row"  style="margin-top: 70px;>
  <div class="col-md-4 col-md-offset-4">
  <h1>Sign In</h1>
  @if(count($errors) >0)
   <div class="alert alert-danger">
  @foreach($errors->all() as $error)
   <p>{{ $error }}</p>
  @endforeach
  </div>
  @endif
  <form action="{{ route('user.signin') }}" method="post">
   <div class="form-group">
    <label for="email">E-Mail</label>
    <input type="text" id="email" name="email" class="form-control">
   </div>
   <div class="form-group">
    <label for="password">Password</label>
    <input type="password" id="password" name="password" class="form-control">
   </div>
   <button type="submit" class="btn btn-primary">Login</button>
    {{ csrf_field() }}
  </form>
</div>


web.php

Route::post('/signin',[
  'user' => 'UserController@postSignin',
  'as' =>  'user.signin'
  ]);


controller

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use Auth;
class UserController extends Controller{

 public function postSignin(Request $request){

  $validateRules = [
    'email' => 'email|required|',
    'password' => 'required|min:4',   
  ];

  $mess=mb_convert_encoding("必須項目です!","utf-8","sjis");
  $mess2=mb_convert_encoding("メールアドレスの形式で入力してください!","utf-8","sjis");
  $mess3=mb_convert_encoding("4文字以上で入力してください!","utf-8","sjis");

  $validateMessages = [
    "required" => $mess,
    "email" => $mess2,
    "password.min" => $mess3,
  ];

  $this->validate($request, $validateRules, $validateMessages);  

  if(Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')])){
      return redirect()->route('user.profile');
  }
  return redirect()->back();
 }

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • zvub1123

    2018/07/31 12:43

    エラー内容ですが、それで全文ですか?どのファイルの何行目かを示す数字は表示されていませんか?

    キャンセル

  • Nitta

    2018/07/31 13:01

    返信ありがとうございます。一様修正しましたが、わかりますでしょうか?

    キャンセル

回答 3

checkベストアンサー

+1

Routingが間違っています。

‘user’=>‘...
ではなく
‘uses’=>’...
になります

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/31 16:11

    返信ありがとうございました。
    上手く行きました。
    スペルミス気が付きませんでした(泣)。
    また、宜しくお願いします。

    キャンセル

+1

php artisan make:auth で会員登録・ログイン・ログアウトのサンプルコードが生成できます。
そちらの実装を参考にされてみてはどうでしょうか。

https://readouble.com/laravel/5.6/ja/authentication.html

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/31 16:14

    返信ありがとうございます。
    上記のphp artisan make:authは
    bootstrap cssの使い方に慣れる意味でも
    参考になります。
    今回はありがとうございました。

    キャンセル

+1

Controller内のuse文が誤っている気がします。

//use Auth; これが誤りでは?
use Illuminate\Support\Facades\Auth;//本来はこちらを使うべきな気がします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/31 16:12

    返信ありがとうございます。
    ‘uses’=>’の間違いでした。
    気が付かないですよね?
    また、宜しくお願いします。

    キャンセル

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

  • ただいまの回答率 89.69%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる