Laravel複数ドメイン名でのフィールド検証方法の紹介(コード付き)
この記事ではLaravelのマルチドメイン名でのフィールド検証方法(コード付き)を紹介します。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。
前書き: 作成者がソフトウェアを Web サイトに送信できるようにするための、統合された作成者バックエンドが開発中です。私たちは Web サイトの 1 つ用に作成者バックエンドを開発しました。現在、このバックエンドを他の Web サイトに提供する予定です。これには次のような特徴があります:
訪問するドメイン名は一貫性がありません。解決策については、私の記事の 1 つである Laravel ルーティングの研究: 複数のドメイン名の問題を解決するドメインを参照してください。
関数の分割
始める前に、システムのさまざまな機能点を分割し、影響を受ける点を推定する必要があります。
ログインと登録
ログイン登録機能が最初に矢面に立たされるため、ユーザーは登録時に異なるドメイン名にアクセスし、異なる ID を記録する必要があります。したがって、次の処理を実行する必要があります。
フィールドの追加identity
重度の判定の実行
ログイン認証の実行
データ処理
これについては説明しません。ユーザーのアイデンティティに応じて、呼び出されるデータも異なります。
登録判定
判定根拠: php 職人 make:auth を使用した後、デフォルトでメールがログインに使用され、デフォルトでメールが判定されることがわかっています。フォーム確認です。コードは次のとおりです。
デフォルトのフォーム検証:
// Path:app/Http/Controllers/Auth/RegisterController.php protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); }
デフォルトのログイン検証フィールド
// Path:vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php public function username() { return 'email'; } // 当然可以修改验证字段(看过文档的都知道),注意:登录验证字段必须是在表里面唯一的。
次に、ニーズを分析する必要があります:
単一ユーザー バックグラウンドの場合, 電子メールの判断 重いだけで十分ですが、複数のユーザーには十分ではありません。
仮定: 2 人のユーザー a と b に対応する 2 つのドメイン名 A と B があります。a と b をテーブルに保存する必要があります。まず、a と b がそのドメイン名 (サイト) に属しているかどうかを判断します。次に、「このユーザーは重複していますか?」を参照してください。
Laravel フォーム検証を使用して以下の実装を行います:
フィールドの追加:
デモンストレーションの便宜上、make auth で生成された移行ファイルに直接変更しました。直接変更しないでください。実際のプロジェクトでは、ただし、新しい移行ファイルを作成し、テーブル構造を変更してフィールドを追加します
public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email'); // 去掉原来的unique $table->string('identity'); // 增加的字段 $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
注: この要件では、電子メールと名前を一意にする必要はありません。移行ファイル内のフィールドは、一意性が独立ではなく依存しているため、修飾されます。
ユーザー登録のシミュレーション、アイデンティティ情報の挿入
// Path: app/Http/Controllers/Auth/RegisterController.php protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), 'identity' => 'pcsoft', // 模拟用户注册时,插入身份字段值 ]); }
重判定処理の実行
protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->where(function ($query) { $query->where('identity', '=', 'onlinedown'); })], // 这句话的意思:按照什么条件对 users 表中的 email 去重,我们需要按照身份字段等于我们访问的域名对 email 去重, 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); }
テスト
最初の登録を実行すると、次のようにデータベースが切断されます。同じメールアドレス、異なる ID で 2 回目の登録:
#同じ ID、同じメール テスト
#ログイン検証
// Path:app/Http/Controllers/Auth/LoginController.php protected function credentials(Request $request) { $request->merge(['identity' => Controller::getWebPrefix()]); return $request->only($this->username(), 'password', 'identity'); }
PHP ビデオ チュートリアル
]以上がLaravel複数ドメイン名でのフィールド検証方法の紹介(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...
