2017-02-15 14 views
3

Laravelのような多くのフレームワークでは、フロントエンド検証の方法に関する提案はありません。これはバックエンドフレームワークからの理解で可能です。バックエンド検証とフロントエンド検証の同期

しかし、フォームを記入するときにユーザーが何か問題があるかどうかを直ちに確認できるように、javascriptの検証を事前に提供することは本当にうれしいでしょう。

私はLaravelのようなものでバックエンドの検証を行う方法を知っており、私はjavascriptでフロントエンドでそれを行う方法を知っています。しかし、発生する問題は、多くのフレームワークがこのフロントエンド/バックエンドの境界を越えていないにもかかわらず、それらを互いに同期させて検証する必要があるということです。

フロントエンドでバックエンド検証に適用されなくなった検証エラーを持つことはできません。人々はこれをどのように扱うのですか?

通常、バックエンドの検証だけを行い、フラッシュバックやエラーをユーザーに渡して、フロントエンド検証をスキップしますか?フロントエンドとバックエンドの検証を同じに保つために、エラーが発生しやすく、かなりの作業が必要になると感じています。

編集

私はそれにいくつかのより多くの入力を大好きだ質問に対する答えはすでにありますが。どのような人々がこの問題に効率的に取り組むかについて、どのように使用しているのか、カスタム解決策や考え方は大歓迎です。

+0

PHPで、クライアント側に同じサーバーサイドルールを適用するためのJavaScriptを生成するコードを記述できるとします。 – GordonM

答えて

1

あなた自身で同期することができます。ラーバル検証ルールをビューに渡して、それらを処理します。このような例がいくつかあります。

私にとって、私は通常、単純なフロントエンドで完全バックエンド検証を行います。最小と最大の長さのみたいなもの。フロントは、値が一意であるかどうかをチェックすることはできません。

https://dotdev.co/form-validation-using-vue-js-2-35abd6b18c5d#.q0r9nkibc

は別のアプローチがあるが、それは少しサーバーの負荷を増加させます。まず、フォームを検証するフラグvalidate=trueを含むフォームを送信します。そして2番目のリクエストは常に実行されます。つまり、検証+アクションです。巨大なリファクタリングではなく、単純なjsライブラリで処理する必要があります。

+0

小規模なアプリケーションを扱っていても、数多くのフォームを持つ膨大なアプリケーションを扱う場合、これは問題なく動作します。正面または背面のいずれかを変更する場合は、相手の更新を忘れないように常に気を付けなければなりません。そうしないと、全体的に一貫性のないロジックが徐々に得られます。私たちが単に要求チェックなどについて話しているとしても、時間がたつにつれて断片化された論理を持つ頭痛のように思えるでしょう。 –

+0

js-validationの場合:*フロントエンドまたはバックエンドのいずれかを変更する場合は、常に相手の更新を維持することを忘れないでください*なぜですか? ["name" => "required | max:10"]のようなルールが1つの場所にあり、それをビューに渡します。 –

+0

PHPからjavascriptにこれらのルールを渡している場合、あなたはすでにそれがまだ存在していないシステムを既に作成しています。これらのルールをJavascriptの検証にも適用したいと考えています。検証をJavascriptでチェックしてからデータを送信することができれば、フォームを送信してリソースを無駄にする必要はありません。 –

関連する問題