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

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

ただいまの
回答率

87.59%

Laravelの認証機能をカスタマイズ

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 604

score 6

前提・実現したいこと

laravelの学習を初めて1週間のものです
Laravelの認証機能をカスタマイズし新規登録/ログイン機能の実装をしたいです

発生している問題・エラーメッセージ

エラーメッセージは出ていないのですが、入力後ボタンを押すと
nameフォーム
passwordフォームの記述が消えdbにも内容は保存されない状況です

該当のソースコード

  database/migrations/日付_update_user_table.php

略
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('category');
            $table->string('place'); 
        });
    }
略
app/User.php
略
    protected $fillable = [
        'name', 'email', 'password','place','category'
    ];
略
register.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Register') }}</div>

                <div class="card-body">
                    <form method="POST" action="{{ route('register') }}">
                        @csrf

                        <div class="form-group row">
                            <label for="category" class="col-md-4 col-form-label text-md-right">チーム名</label>

                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control @error('category') is-invalid @enderror" name="name" value="{{ old('category') }}" required autocomplete="category" autofocus>

                                @error('name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

 <div class="form-group row">
                            <label for="name" class="col-md-4 col-form-label text-md-right">カテゴリー</label>

                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>

                                @error('name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

 <div class="form-group row">
                            <label for="name" class="col-md-4 col-form-label text-md-right">活動地域</label>

                            <div class="col-md-6">
                                <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>

                                @error('name')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">メールアドレス</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password" class="col-md-4 col-form-label text-md-right">パスワード</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">

                                @error('password')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password-confirm" class="col-md-4 col-form-label text-md-right">パスワード( 確認用 )</label>

                            <div class="col-md-6">
                                <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-6 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Register') }}
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection
RegisterController.php 

 略
protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:50'],
            'category' => ['required', 'string', 'max:5'],
            'place' => ['required', 'string', 'max:5'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }
略

試したこと

dbに手打ちで入力後ログインできるか試みましたができませんでした

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

MacOs
php 7.3
laravel 7.1
mysql 8.0.9

dbの作り

id name e-mail email_verified_at password remember_token  created_at updated_at category place

ログイン機能のカスタマイズにつきましては以下のサイトを参考に使いました
https://knowledge.cpi.ad.jp/howto-cpi/laravel-login/

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

とりあえずinputのname属性を一度確認された方が良さそうです。

カスタマイズで入力欄を増殖した際のコピペ後の、調整が中途半端に見えます、、

チーム名の入力欄が「category」で、
カテゴリーと活動地域の入力欄は「name」(2つとも同じ)

。。。って、作りたかったフォームになってますか?


画面の動きとしては、
必須チェックしている「place」に該当する入力欄がありませんので、バリデーションエラーが発生して入力画面に戻ってきているのだと思いますが、そのエラーを表示する場所もないので、「ぱっと見エラーはないけど、登録もできていない」という状態に見えるのだと思います。


dbに手打ちで入力後ログインできるか試みましたができませんでした 

laravelの基本のユーザー認証では、パスワードは暗号化したものが登録される仕様の筈です。

もし、DBに、パスワードとして使いたい文字列をそのまま登録したのであれば、
ログイン処理では「暗号化されている」想定でパスワードの確認をするので、絶対に一致しない為、ログインできないのは正常です。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2020/03/17 16:50

    ありがとうございます
    だいぶ煮詰まってて直すの忘れてました
    試してみます!

    キャンセル

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

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

関連した質問

同じタグがついた質問を見る