前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。