問題タブ [laravel-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Laravel/Eloquent: モデル内からの検証
Laravel 4.2 と eloquent に慣れてきました。私は、laracasts.com で Laravel from Scratch キャスト、特に検証に関するレッスンとフォローアップ リファクタリングを見てきました。これらのレッスン全体で使用される例では、ユーザー名とパスワードの 2 つのフィールドしかない比較的基本的なユーザー モデルを扱います。私のユーザー モデルにはさらに多くのフィールドが含まれており、登録フォームでは、ユーザーが入力したパスワードを再入力/確認するよう求められます。
ユーザー入力を検証するプロセスはモデル内で実行することをお勧めしますが、これは完全に理にかなっています。そのチュートリアルと同じようisValid
に、登録フォームでのユーザー入力を検証するメソッドをモデルに追加しました。次のような入力に基づいてユーザー モデルを埋めます。
これで、ルールを作成し、検証が機能するようになりました。これで、ユーザーの入力をデータベースに保存する準備が整いました。ただし、モデルにユーザー入力全体を入力したため、ユーザー モデル インスタンスには の属性が含まれるようにconfirm_password
なり、呼び出すと$user->save();
エラーが発生します (データベース テーブルにこのフィールドがないため)。さらに、検証のためにユーザー入力を渡したばかりなので、パスワードもハッシュ化されていません。
モデルが実際にデータベーステーブルを表すユーザー入力 VS の検証に関して、どのようなアプローチを取るのが最善でしょうか? 検証をモデルの外に移動したり、おそらくモデルに検証ルールを保存させたりすることで、これらすべてを回避できる方法があることは知っていますが、ベストプラクティスに関するアドバイスを探すことができます。
ありがとう
php - Laravel Validation ログインフォームの検証はパスワード確認で失敗しますか?
ログインフォームとサインアップフォームの2つのフォームと1つのユーザーモデルがあり、ユーザークラスにルールとメッセージを設定しました。これらは静的メンバーである$rulesと$messagesであり、現在直面している問題はサインアップフォームですすべてが正しいことを検証しますが、ログインフォームでは、正しい電子メールとパスワードを入力した後、ログインフォームに password_confrimation フィールドがないため、「パスワード確認が一致しません」というメッセージが表示されます。
UserModel のルールとメッセージ
ログインアクション
validation - Laravel - 検証のローカリゼーションが機能しない
trans()
関数を使用してファイルから特定の翻訳を返すときはいつでもvalidation.php
、完全に機能します。アプリケーションに 2 つの言語があり、両方の翻訳が返されます。
ただし、Laravel バリデーターを使用すると、デフォルトのロケールでのみメッセージが返されます。バリデーターで指定する必要があるものはありますか? 両方の言語で機能させるにはどうすればよいですか?
php - Laravel 検証: 追加の列条件で存在 - カスタム検証ルール
Laravelでexistsバリデーションルールを指定する際に別のフィールドを参照する方法はありますか? 入力 a はテーブル a に存在する必要があり、入力 b はテーブル b に存在する必要があり、テーブル b の列 x の値は入力 a と等しくなければならないと言えます。
例によって最もよく説明されています:
したがって、検証ルールを使用して、次のことを確認できるようにしたいと考えています。
game_id
games
テーブル (id
フィールド)内に存在するteam1_id
teams
テーブル (id
フィールド)内に存在し、game_id
列 (テーブル内) は入力teams
の値と等しくなければなりません。game_id
- 上記のように
team2_id
したがって、私のフォームで1
forを入力した場合、チーム テーブル内のレコードが両方のとの値を持ってgame_id
いることを確認できるようにしたいと考えています。team1_id
team2_id
1
game_id
これが理にかなっていることを願っています。
ありがとう
regex - Laravelのカスタム検証で属性名に正規表現を追加するには?
以下に示すように、カスタム検証では:
attribute-name-{regex} と一緒に正規表現を定義するにはどうすればよいですか?!
例: