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

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

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

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

Laravel 5

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

Q&A

解決済

1回答

4253閲覧

Laravel5.5認証機能のエラーが直せない

paranoaman

総合スコア27

PHP

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

Laravel 5

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

0グッド

0クリップ

投稿2017/11/14 17:05

編集2017/11/15 04:35

ご存知の方いらっしゃいましたら助けてください。

当方Laravel初心者で初めて触るフレームワークがLaravel5.5になります。
管理画面の作成中なのですがログインページを3パターンに分ける必要があり
認証判定も違うためマルチログイン?の機能をググってみて実践してみました。
そうするとエラーが出てしまいそのエラーを解消できないまま2日がたってしまいました。。

以下のエラーがどういった場合に出るのかご存知の方いらっしゃいましたら何卒ご教授いただきたいです。

Type error: Argument 2 passed to Illuminate\Auth\SessionGuard::__construct() must implement interface Illuminate\Contracts\Auth\UserProvider, null given, called in /home/vagrant/code/este-works/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php on line 124

関連ファイル情報
config/auth.php

'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], 'shop' => [ 'driver' => 'session', 'provider' => 'staffs', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ], 'shops' => [ 'driver' => 'eloquent', 'model' => App\Staff::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ], コード

コントローラー

AdminsController.php

namespace App\Http\Controllers\ForAdmins; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\AuthenticatesUsers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class AdminsController extends Controller { protected $admin_redirectTo = 'for_admins/shops'; use AuthenticatesUsers; public function login() { return view('for_admins.login'); } コード

ルーティング

routes/web.php

Route::group(['prefix' => 'for_admins', 'namespace' => 'ForAdmins'], function () { Route::get('/login', 'AdminsController@login'); Route::post('/login', 'AdminsController@dologin'); });

仕様の変更があり現状「admin」で定義している部分が「staff」となっていました。
関連ファイルを「admin」に差し替えていったところエラーが出てしまい原因が分からず、、

本当にわかりません。。
よろしくお願いします。

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

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

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

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

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

aro10

2017/11/14 22:14

UserProvider null givenとでているので、config/auth辺りの設定がおかしいように思いますが、状況がわからないので関連箇所のコードと情報の参照元、試した内容、どのようになるべきかと言った情報を追記してください。
paranoaman

2017/11/15 04:36

ご回答いただきありがとうございます!関連ファイル情報記載しました!足りない情報がありましたら教えてください!何卒よろしくお願いします!
aro10

2017/11/15 05:01

追記分の「現状「admin」で定義している部分が「staff」となっていました」というのは、コードのどこの部分を指していますか また関連ファイルを「admin」に差し替えていったとうのも、どのような変更を行いましたか
guest

回答1

0

ベストアンサー

追記をみてconfig/auth.phpのguardsのshopの対応するproviderの定義がないので、

'shop' => [ 'driver' => 'session', 'provider' => 'staffs', ],

UserProvider null givenのエラー内容から存在する以下にすると解決するかもしれません。

'shop' => [ 'driver' => 'session', 'provider' => 'shops', ],

補足としてマルチ認証を使う場合は、デフォルト設定のガード以外を利用する局面では、ガード名の指定が必要です。
また、一つのLaravelアプリではセッションを共有する都合上、別々の認証設定アカウントを使う操作者がいる場合はログオフして使わないと競合してしまいます。

#例 Route::get('profile', function() { // 処理など })->middleware('auth:ガード名'); $this->middleware('auth:ガード名');

Laravel 5.5 認証 ガードの指定

投稿2017/11/15 05:05

編集2017/11/15 09:47
aro10

総合スコア4106

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

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

paranoaman

2017/11/16 15:05

ありがとうございます! 言われた通りの修正をしたら解決しました! 作りをまだまだ理解していないのがいけないのですが一旦エラーが出るとエラー箇所を断定するのにどうしても時間がかかってしまいます。。 本当に助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問