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

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

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

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

PHP

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

Q&A

解決済

1回答

860閲覧

Laravelでアカウント登録ができない

suika11

総合スコア166

Laravel

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

PHP

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

0グッド

0クリップ

投稿2022/03/30 18:10

会員登録フォームでアカウント登録しても元の登録画面へ戻ってきてしまいます。コントローラーのアクションにもなぜかアクセスできません。フォームのactionも問題ありません。特にエラーメッセージも表示されずどこに問題があるのか全く検討がつきません。何かヒントが欲しいです。

該当のソースコード

register.blade.php

1@extends('layouts.app') 2 3@section('content') 4 <div class="container"> 5 <div class="row justify-content-center"> 6 <div class="col-md-8"> 7 <div class="card"> 8 <div class="card-header">{{ __('Register') }}</div> 9 10 <div class="card-body"> 11 <form method="POST" action="{{ route('register') }}"> 12 @csrf 13 14 @if (session()->has('fail')) 15 <div style="color: red">登録ができませんでした。時間をあけて、再度お試しください</div> 16 @endif 17 18 <div class="row mb-3"> 19 <label for="email" class="col-md-4 col-form-label text-md-end">{{ __('Email Address') }}</label> 20 21 <div class="col-md-6"> 22 <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" 23 value="{{ old('email', session('fail.email') ?? '') }}" required autocomplete="email"> 24 <?php session()->forget('fail'); ?> 25 26 @error('email') 27 <span class="invalid-feedback" role="alert"> 28 <strong>{{ $message }}</strong> 29 </span> 30 @enderror 31 </div> 32 </div> 33 34 <div class="row mb-3"> 35 <label for="password" class="col-md-4 col-form-label text-md-end">{{ __('Password') }}</label> 36 37 <div class="col-md-6"> 38 <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" 39 name="password" required autocomplete="new-password"> 40 41 @error('password') 42 <span class="invalid-feedback" role="alert"> 43 <strong>{{ $message }}</strong> 44 </span> 45 @enderror 46 </div> 47 </div> 48 49 <div class="row mb-3"> 50 <label for="password-confirm" 51 class="col-md-4 col-form-label text-md-end">{{ __('Confirm Password') }}</label> 52 53 <div class="col-md-6"> 54 <input id="password-confirm" type="password" class="form-control" name="password_confirmation" 55 required autocomplete="new-password"> 56 </div> 57 </div> 58 59 <div class="row mb-0"> 60 <div class="col-md-6 offset-md-4"> 61 <button type="submit" class="btn btn-primary"> 62 {{ __('Register') }} 63 </button> 64 </div> 65 </div> 66 </form> 67 </div> 68 </div> 69 </div> 70 </div> 71 </div> 72@endsection

atuh.php

1<?php 2 3use App\Http\Controllers\Auth\AuthenticatedSessionController; 4use App\Http\Controllers\Auth\ConfirmablePasswordController; 5use App\Http\Controllers\Auth\EmailVerificationNotificationController; 6use App\Http\Controllers\Auth\EmailVerificationPromptController; 7use App\Http\Controllers\Auth\NewPasswordController; 8use App\Http\Controllers\Auth\PasswordResetLinkController; 9use App\Http\Controllers\Auth\RegisteredUserController; 10use App\Http\Controllers\Auth\VerifyEmailController; 11use Illuminate\Support\Facades\Route; 12 13Route::middleware('guest')->group(function () { 14 Route::get('register', [RegisteredUserController::class, 'create']) 15 ->name('register'); 16 17 Route::post('register', [RegisteredUserController::class, 'store']); 18 19 Route::get('login', [AuthenticatedSessionController::class, 'create']) 20 ->name('login'); 21 22 Route::post('login', [AuthenticatedSessionController::class, 'store']); 23 24 Route::get('forgot-password', [PasswordResetLinkController::class, 'create']) 25 ->name('password.request'); 26 27 Route::post('forgot-password', [PasswordResetLinkController::class, 'store']) 28 ->name('password.email'); 29 30 Route::get('reset-password/{token}', [NewPasswordController::class, 'create']) 31 ->name('password.reset'); 32 33 Route::post('reset-password', [NewPasswordController::class, 'store']) 34 ->name('password.update'); 35}); 36 37Route::middleware('auth')->group(function () { 38 Route::get('verify-email', [EmailVerificationPromptController::class, '__invoke']) 39 ->name('verification.notice'); 40 41 Route::get('verify-email/{id}/{hash}', [VerifyEmailController::class, '__invoke']) 42 ->middleware(['signed', 'throttle:6,1']) 43 ->name('verification.verify'); 44 45 Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store']) 46 ->middleware('throttle:6,1') 47 ->name('verification.send'); 48 49 Route::get('confirm-password', [ConfirmablePasswordController::class, 'show']) 50 ->name('password.confirm'); 51 52 Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']); 53 54 Route::post('logout', [AuthenticatedSessionController::class, 'destroy']) 55 ->name('logout'); 56});

RegisteredUserController.php

1<?php 2 3namespace App\Http\Controllers\Auth; 4 5use App\Http\Controllers\Controller; 6use App\Models\User; 7use App\Providers\RouteServiceProvider; 8use Exception; 9use Illuminate\Auth\Events\Registered; 10use Illuminate\Http\Request; 11use Illuminate\Support\Str; 12use Illuminate\Support\Facades\Auth; 13use Illuminate\Support\Facades\Hash; 14use Illuminate\Validation\Rules; 15 16class RegisteredUserController extends Controller 17{ 18 /** 19 * Display the registration view. 20 * 21 * @return \Illuminate\View\View 22 */ 23 public function create() 24 { 25 return view('auth.register'); 26 } 27 28 /** 29 * Handle an incoming registration request. 30 * 31 * @param \Illuminate\Http\Request $request 32 * @return \Illuminate\Http\RedirectResponse 33 * 34 * @throws \Illuminate\Validation\ValidationException 35 */ 36 public function store(Request $request) 37 { 38 $request->validate([ 39 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 40 'password' => ['required', 'confirmed', Rules\Password::defaults()], 41 ]); 42 43 try { 44 $i = 0; 45 do { 46 if ($i > 10) { 47 // 登録に失敗したことを知らせ、再度登録することを促す ユーザの入力データをフォームに戻したい 48 throw new Exception(); 49 } 50 $userID = Str::random(15); 51 $i++; 52 } while (User::where('userID', $userID)->exists()); 53 54 $user = User::create([ 55 'email' => $request->email, 56 'password' => Hash::make($request->password), 57 'userID' => $userID, 58 ]); 59 } catch (Exception $e) { 60 $request->session()->put([ 61 'fail' => [ 62 'email' => $request->email, 63 ], 64 ]); 65 return redirect()->route('register'); 66 } 67 68 event(new Registered($user)); 69 70 Auth::login($user); 71 72 return redirect(RouteServiceProvider::HOME); 73 } 74}

試したこと

ルーティングの確認

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

PHP 8.1.1
Laravel 8.79.0

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

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

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

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

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

m.ts10806

2022/03/30 21:54

タイトルと中身が合致してないような。 データ自体は生成されてるのでしょうか。
suika11

2022/03/30 21:57

コメントありがとうございます。データというのは何についてでしょうか?
m.ts10806

2022/03/31 00:55

タイトル「登録できない」 本文「登録しても」 とあるので、どっちだろうと。 ひとまずデータベースのテーブルに入力データが登録されるか確認して、という意味です。
AbeTakashi

2022/03/31 01:08

route.phpも載せた方がいいかもしれません
suika11

2022/04/01 07:02

m.ts10806さん 確かにタイトルと本文とで矛盾してました。問題自体は関係のないファイルのせいであり削除したら解決しました AbeTakashi ご指摘ありがとうございます。次回以降の質問では気をつけます
m.ts10806

2022/04/01 11:12

今からでも結構ですので後から参照する人のために質問内容調整しておいてください(質問は編集できます)
guest

回答1

0

自己解決

全く関係のないテストで作ったファイルを削除したら正常化しました

投稿2022/04/01 06:58

suika11

総合スコア166

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問