ホームページ > バックエンド開発 > PHPチュートリアル > Laravel における固有の既存の検証ルールの最適化 PHP の詳細な例

Laravel における固有の既存の検証ルールの最適化 PHP の詳細な例

jacklove
リリース: 2023-04-02 06:22:02
オリジナル
1599 人が閲覧しました

この記事では、Laravel における独自の既存の検証ルールの最適化に関する関連情報を、サンプル コードを通じて詳細に紹介します。この記事は、学習や仕事に必要な学習に役立ちます。以下のエディターと一緒に学びましょう。

まえがき

Laravel は、アプリケーションの入力データを検証するためのさまざまなメソッドを提供します。デフォルトでは、Laravel のコントローラー基本クラスは ValidatesRequests トレイトを使用します。これは、さまざまな強力な検証ルールを通じて受信 HTTP リクエストを検証する便利なメソッドを提供します。

Laravel の ValidatesRequests トレイトを通じてリクエストを検証するのは非常に便利で、BaseController クラスに自動的に導入されます。 exitsts() と unique() の 2 つのルールは非常に強力で便利です。

使用中にデータベース内の既存のデータを検証する必要があります。通常は次のように記述されます。

// exists example
'email' => 'exists:staff,account_id,1'
// unique example
'email' => 'unique:users,email_address,$user->id,id,account_id,1'
ログイン後にコピー

の構文上記の書き方は覚えるのが難しく、それを使用するたびにドキュメントを参照する必要があります。ただし、Laravel バージョン 5.3.18 以降では、新しい Rule クラスを通じて両方の検証ルールを簡素化できるようになりました。

次のような使い慣れたチェーン構文を使用して、同じ効果を実現できます。

'email' => [
 'required',
 Rule::exists('staff')->where(function ($query) {
 $query->where('account_id', 1);
 }),
],
ログイン後にコピー

'email' => [
 'required',
 Rule::unique('users')->ignore($user->id)->where(function ($query) {
 $query->where('account_id', 1);
 })
],
ログイン後にコピー

両方の検証ルールは、次のチェーン メソッドもサポートしています:

  • where

  • whereNot

  • whereNull

  • whereNotNull

独自の検証ルールは、ignore メソッドもサポートしているため、検証中に特定のデータを無視できる場合があります。

良いニュースは、古い書き込みメソッドがまだ完全にサポートされていることです。新しい書き込みメソッドは、実際に formatWheres メソッドを通じて古い書き込みメソッドを下部で古い書き込みメソッドに変換します。

protected function formatWheres()
{
 return collect($this->wheres)->map(function ($where) {
 return $where['column'].','.$where['value'];
 })->implode(',');
}
ログイン後にコピー

関連する推奨事項:

php IP が有効な IP アドレスかどうかを確認する方法 php の例


#php で実装される AES 暗号化クラスの定義と使用例 PHP スキル

##クロスサイトおよび xss 攻撃コードを防ぐための PHP のヒント

以上がLaravel における固有の既存の検証ルールの最適化 PHP の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート