コンテンツに移動 ナビゲーションに移動

IT全般に関する雑記や技術ブログ。wordpressやPHP LaravelたまにPython

南の島のSE エンジニアブログ

PHP
  1. HOME
  2. PHP
  3. Laravel 8でログイン機能実装3 会員登録項目追加
2020年8月31日 / 最終更新日 : 2022年8月8日 syun03 PHP

Laravel 8でログイン機能実装3 会員登録項目追加

Laravelのパッケージとして利用できるログイン機能のカスタマイズシリーズ第三弾として

会員登録時の入力項目をカスタマイズします。

例えばECサイトで住所を入力してもらったり、マッチングサイトで性別を入力してもらうなど

項目追加したいケースは多数ありますね。

目次
  • 1. 対応概要
  • 2. 会員登録画面の修正
  • 2.1. 追加項目一覧
  • 2.2. エラーメッセージ
  • 3. バリデーション
  • 4. データベースへの登録
  • 5. DBマイグレーション
  • 6. ログイン機能連載一覧

対応概要

修正する箇所は下記

  • 会員登録画面の修正
  • エラーメッセージ修正
  • バリデーション設定
  • データ登録
  • DBマイグレーション

Laravel会員登録画面の修正

今回追加する項目はこちらの6項目

追加項目一覧

項目名物理名
郵便番号zip-code
都道府県prefecture
市町村city
住所1address1
住所2address2
電話番号tel

これをまずは会員登録画面に項目作成します。

郵便番号のサンプルのみ記載しますが、これを6項目分作成します。

 <div class="form-group row">
     <label for="zip-code" class="col-md-4 col-form-label text-md-right">{{ __('zip-code') }}</label>

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

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

フォームのタイプは項目に応じて修正する必要はあります。

サンプルは郵便番号なので、「数字」項目としております。

エラーメッセージ

次に会員登録時などのエラーメッセージを登録します。

今回登録した項目の物理名に対して、フロントに表示する文言を設定します。

"zip-code": "郵便番号",
"prefecture": "都道府県",
"city": "市町村",
"address1": "番地",
"address2": "マンション",
"tel": "電話番号",

バリデーション

バリデーションのロジックは「RegisterController」に記載があります。

本当は独立させた方がいいのですが、とりあえず今回はそのまま。

protected function validator(array $data)
{
    return Validator::make($data, [
        'login_id' => ['required', new alpha_num_check(), 'max:20','unique:users'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        //ここから会員登録項目追加
        'zip-code' => ['required', 'string', 'max:7'],
        'prefecture' => ['required', 'string', 'max:5'],
        'city' => ['required', 'string', 'max:20'],
        'address1' => ['required', 'string', 'max:20'],
        'address2' => ['required', 'string', 'max:20'],
        'tel' => ['required', 'string', 'max:9'],

    ]);
}

このままでは、バリデーション時の項目名が英語のまま表示されてしまいますので

バリデーションのattributeも設定する必要があります。

設定箇所はこちらです。

    'attributes' =>gt; [
        'email' => 'メールアドレス',
        'password' => 'パスワード',
        'login_id' => 'ログインID',
        'zip-code' => '郵便番号',
        'prefecture' => '都道府県',
        'address1' => '住所1',
        'address2' => '住所2',
        'tel' => '電話番号',
],

データベースへの登録

もともと準備されている登録ロジックを拡張する形で、今回追加した項目も追加します

protected function create(array $data)
{
    return User::create([
        'login_id' => $data['login_id'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        //ここから会員登録項目追加
        'zip-code' => $data['zip-code'],
        'prefecture' => $data['prefecture'],
        'city' => $data['city'],
        'address1' => $data['address1'],
        'address2' => $data['address2'],
        'tel' => $data['tel'],

    ]);
}

これで登録機能の追加も完了です。簡単ですね。

DBマイグレーション

最後に、追加した情報を登録するテーブルを準備します。

laravelのマイグレーション機能を使って、項目追加をします。

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('tel',9)->after('remember_token')->comment('電話番号');
        $table->string('address2',50)->after('remember_token')->comment('マンション');
        $table->string('address1',50)->after('remember_token')->comment('番地');
        $table->string('city',50)->after('remember_token')->comment('市町村');
        $table->string('prefecture',10)->after('remember_token')->comment('都道府県');
        $table->string('zip-code',7)->after('remember_token')->comment('郵便番号');
    });
}

これで会員登録目の追加機能が完了です。

Laravelログイン機能連載一覧

  • Laravel 8でログイン機能実装1 基本機能
  • Laravel 8でログイン機能実装2 ログインIDの導入 
  • Laravel 8でログイン機能実装3 会員登録時の入力項目追加 ←いまここ
  • Laravel 8でログイン機能実装4 ValueObjectとバリデーション
  • Laravel 8でログイン機能実装5 会員情報変更

  • クリックして Twitter で共有 (新しいウィンドウで開きます)
  • Facebook で共有するにはクリックしてください (新しいウィンドウで開きます)

関連記事

LaravelとAmazon Cognitoでログイン実装
Laravelで Amazon Cognito ログイン認証2【会員登録機能】
 2022年9月2日
Laravel8でログイン機能実装5 会員情報更新
Laravel 8で会員サイト構築5 会員情報更新機能
 2020年9月19日
Laravel8でログイン機能実装4 値オプジェクト
Laravel8 ログイン機能実装4 値オブジェクトを用いたバリデーション
 2020年9月15日
Laravel8でログイン機能実装2
Laravel 8でログイン機能実装2 ログインID導入
 2020年8月12日
Laravel8でログイン機能実装1
Laravel8でログイン機能実装1 基本機能導入編
 2020年8月7日
カテゴリー
PHP、Laravel
タグ
ログイン

“Laravel 8でログイン機能実装3 会員登録項目追加”へ2件のコメント

  1. 匿名 より:
    2022年4月1日 2:56 PM

    学習中ですが、既存のものに手を加えるとなるとわからな過ぎて途方に暮れておりました。。
    細かい手順まで記載されていてわかりやすいです。感謝いたします。

    返信
    1. syun03 より:
      2022年4月1日 3:07 PM

      コメントありがとうございます。
      お褒めの言葉を頂き恐縮です。

      返信

コメントを残す コメントをキャンセル

welcart
welcartで限定商品販売

前の記事

welcartで特定会員限定の商品販売
2020年8月30日
wordpress
タグ一覧にカテゴリ表記追加

次の記事

wordpress タグ一覧にカテゴリ情報表示
2020年9月9日

検索

自己紹介

auther

南の島を愛するエンジニア
他にはない一歩踏み込んだ内容を心がけています。PHP/Phtyonでの開発やwordpressのカスタマイズ。最近はAWS
【IPA資格】
ITストラテジスト/ ITアーキテクト/ 情報セキュリティスペシャリスト

ココナラで活動中 お仕事のご依頼はこちら

【お友達紹介キャンペーン】ここから会員登録で1,000ポイント獲得

ランサーズはこちら お仕事承ります

人気記事

カテゴリー

  • システム構築 (5)
  • AWS (7)
    • コスト最適化 (1)
  • Python (4)
    • Django (4)
  • PHP (19)
    • Laravel (18)
  • wordpress (31)
    • WooCommerce (5)
    • welcart (2)
  • ライフスタイル (1)
    • 副業 (1)
  • セキュリティ (1)
  • 資格 (37)
    • 基本情報技術者試験 (3)
    • プロジェクトマネージャ (7)
    • システムアーキテクト (3)
    • ITストラテジスト (6)
    • 情報処理安全確保支援士 (17)
  • その他 (7)

タグ

AWS (1) cognito (2) laravel-admin (4) SalonBookingSystem (5) simple-membership (3) stripe (5) subscription (1) wp-members (10) ドメイン駆動設計 (1) ログイン (6) 会員サイト (1)

目次

  • 1 対応概要
  • 2 Laravel会員登録画面の修正
    • 2.1 追加項目一覧
    • 2.2 エラーメッセージ
  • 3 バリデーション
  • 4 データベースへの登録
  • 5 DBマイグレーション
  • 6 Laravelログイン機能連載一覧

当サイトについて

TOP |
プライバシーポリシー |
お問合せ

カテゴリー

  • システム構築
  • AWS
    • コスト最適化
  • Python
    • Django
  • PHP
    • Laravel
  • wordpress
    • WooCommerce
    • welcart
  • ライフスタイル
    • 副業
  • セキュリティ
  • 資格
    • 基本情報技術者試験
    • プロジェクトマネージャ
    • システムアーキテクト
    • ITストラテジスト
    • 情報処理安全確保支援士
  • その他

タグ

  • laravel
  • wp-members
  • 会員サイト
  • ドメイン駆動設計
  • simple-membership
  • stripe
  • SalonBookingSystem
  • laravel-admin
  • subscription
  • AWS
  • ログイン
  • cognito

最近の投稿

ITストラテジスト午後2 令和4年
ITストラテジスト試験 令和4年午後2論述解説
2023年3月19日
【AWS】VPCリソースマップがイケてる【VPC可視化】
2023年3月12日
基本情報技術者試験解説 科目A
【2023新試験】基本情報技術者試験サンプル問題(科目A試験)
2023年2月26日
AWS budgetsで予算管理
【事例で学ぶ】AWS Budgetsを利用した予算設定
2023年2月18日
プロジェクトマネージャ試験令和4年度秋季 午後1問3解答速報
【解答・解説】プロジェクトマネージャ 令和4年度秋季【午後1問3】
2022年10月15日

Copyright © 南の島のSE エンジニアブログ All Rights Reserved.

MENU
  • HOME