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

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

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

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

Q&A

2回答

638閲覧

発生している問題 Laravelのマルチ認証でDBへの登録時にエラーが表示される

ORyohei

総合スコア18

Laravel

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

0グッド

0クリップ

投稿2020/06/18 07:45

編集2022/01/12 10:55

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題 Laravelのマルチ認証でDBへの登録時にエラーが表示される

Laravel 5.7にて

マルチ認証で追加したadminを新規登録しようとするとエラーが発生し、登録ができず、以下のエラーが表示されてしまいます。

エラーメッセージ Too few arguments to function App\Http\Controllers\Admin\RegisterController::create(), 0 passed and exactly 1 expected

該当のソースコード

ソースコード Route::group(['prefix' => 'shops'], function () { Route::get('/home', 'AuthShop\HomeController@index')->name('home'); Route::get('register', 'AuthShop\RegisterController@showRegistrationForm') ->name('shop_auth.register'); Route::post('register', 'AuthShop\RegisterController@create') ->name('shop_auth.register'); Route::get('login','AuthShop\LoginController@showLoginForm') ->name('shop_auth.login'); Route::post('login', 'AuthShop\LoginController@login') ->name('shop_auth.login'); Route::post('logout', 'AuthShop\LoginController@logout') ->name('shop_auth.logout'); Route::get('password/reset', 'AuthShop\ForgotPasswordController@showShopLinkRequestForm') ->name('shop_auth.password.request'); Route::post('password/email','AuthShop\ForgotPasswordController@sendShopResetLinkEmail') ->name('shop_auth.password.email'); Route::get('password/reset/{token}', 'AuthShop\ResetPasswordController@showResetForm') ->name('shop_auth.password.reset'); Route::post('password/reset', 'AuthShop\ResetPasswordController@reset') ->name('shop_auth.password.update'); });

web.php

該当のソースコード

ソースコード <?php namespace App\Http\Controllers\AuthShop; use App\Shop; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use Illuminate\Foundation\Auth\RegistersUsers; class RegisterController extends Controller { /* |-------------------------------------------------------------------------- | Register Controller |-------------------------------------------------------------------------- | | This controller handles the registration of new users as well as their | validation and creation. By default this controller uses a trait to | provide this functionality without requiring any additional code. | */ use RegistersUsers; public function showRegistrationForm() { return view('shop_auth.shop_register'); } /** * Where to redirect users after registration. * * @var string */ protected $redirectTo = '/home'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest:shop'); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { return Validator::make($data, [ 'shop_name' => ['required', 'string', 'max:255'], 'branch_name ' => ['required', 'string', 'max:255'], 'prefecture' => ['required', 'string', 'max:255'], 'address' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\Shop */ protected function create(array $data) { return Shop::create([ 'shop_name' => $data['shop_name'], 'branch_name' => $data['branch_name'], 'prefecture' => $data['prefecture'], 'address' => $data['address'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); } protected function guard() { return Auth::guard('shop'); } }

RegisterController.php

@extends('layouts.app') @section('title', '新規登録') @include('nav') @section('content') <section class="l-inner-wrapper__m p-login-bg" id="Salon"> <div class="l-inner l-inner__s p-login-color u-padding"> <div class="c-inner__title">アカウントを作成する</div> <div class="l-inner__body"> <div class="p-login"> <form method="POST" action="{{ route('shop_auth.register') }}"> @csrf <ul class=""> <li class="p-form__item"> @error('shop_name') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror <input id="shop_name" type="shop_name" class="c-text @error('shop_name') is-invalid @enderror" name="shop_name" value="{{ old('shop_name') }}" required autocomplete="shop_name" placeholder="コンビニ名" > </li> <li class="p-form__item"> @error('branch_name') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror <input id="branch_name"name="branch_name"type="text" placeholder="支店名" class="c-text" required autocomplete="branch_name" value="{{ old('branch_name') }}" > </li> <li class="p-form__item"> @error('prefecture') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror <li class="p-form__item c-text"> <select name="prefecture" id="prefecture"> <option value="">住所:都道府県</option> <option value="東京">東京</option> <option value="神奈川">神奈川</option> <option value="千葉">千葉</option> </select> </li> </li> <li class="p-form__item"> @error('adrress') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror <input id="address" type="address" class="c-text @error('address') is-invalid @enderror" name="address" value="{{ old('address') }}" required autocomplete="address" placeholder="住所:市町村番地" > </li> <li class="p-form__item"> @error('email') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror <input id="email" type="email" class="c-text @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="メールアドレス" > </li> <li class="p-form__item"> @error('password') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror <input id="password" type="password" class="c-text @error('password') is-invalid @enderror" name="password" required autocomplete="new-password" placeholder="パスワード"> <label for="" class=""> ※半角英数字組み合わせで8文字以上 </label> </li> <li class="p-form__item"> <input id="password-confirm" type="password" class="c-text" name="password_confirmation" required autocomplete="new-password" placeholder="パスワード確認" > </li> </ul> <div class="submit-btn"> <input type="submit" value="アカウントを作成する" class="p-submit__btn c-btn"> </div> </form> </div> </div> </div> </section>

shop_register.blade.php

試したこと

エラー文を読む限り、create()に渡す「 array $data 」に対して値の受け渡しができていないと考えているのですが、受け渡しができていない原因がわからず、困っています。

この場合の解決方法をご教示いただけたら幸いです。
よろしくお願いいたいます。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

yuki84web

2020/06/18 09:41

viewはどうなっているのでしょうか。
ORyohei

2020/06/18 09:57

viewのコードを追加しました
guest

回答2

0

イメージ説明

投稿2020/06/19 07:19

ORyohei

総合スコア18

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

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

0

RegisterControllerのcreateメソッドの引数の型宣言がおかしいと思います。

RegisterController.php

PHP

1 * Create a new user instance after a valid registration. 2 * 3 * @param array $data 4 * @return \App\Shop 5 */ 6// protected function create(array $data) 7 protected function create(Request $data) 8 { 9 return Shop::create([ 10 'shop_name' => $data['shop_name'], 11 'branch_name' => $data['branch_name'], 12 'prefecture' => $data['prefecture'], 13 'address' => $data['address'], 14 'email' => $data['email'], 15 'password' => Hash::make($data['password']), 16 ]); 17

投稿2020/06/18 17:09

m.kosuda

総合スコア153

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

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

ORyohei

2020/06/19 07:18

引数をRequestに変えることでDBに登録することができました!しかしボタンを押したあと、DBに送信した$dataの値が真っ白の画面に出るのですが、何か原因は考えられるでしょうか。コントローラーで protected $redirectTo = '/home';のように指定しています。
m.kosuda

2020/06/19 07:24 編集

returnで返すのは遷移先のルートです。↓ redirect()->route('遷移先ルート名')// web.phpで定義してあるもの。
ORyohei

2020/06/26 04:13

うまくいきました!お忙しい中ご返信いただきありがとうがざいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問