postgresql データベースに移行しており、できるだけ多くの制約チェックを使用したいと考えています。問題は、Web フォームを検証したいときに、保守が難しい重複コードがたくさんあることです。このデータベース チェックを Web フォームの検証にも使用できますか? アプリケーションは PHP で作成され、データベース層はpommです。目標は、PHP アプリケーションで追加のルールを定義せずに、すべての入力された値を取得してデータベースに送信し、失敗したすべての制約を取得することです。最も簡単な方法でそれを達成するにはどうすればよいですか?
質問する
394 次
1 に答える
1
さて、データベースの制約は、データが一貫した方法で保存されることを保証するためにここにあります。フォームの検証には、機能のコンテキストに応じて異なるルールが含まれる場合があります。私見では、フォームを検証するためにデータベースの制約に依存するのは良い考えではありません(私はそのためにSymfonyバリデーターコンポーネントを使用しています)。
純粋に技術的な観点から、データベースを検証レイヤーとして使用する場合、最も難しい部分は、データを挿入/更新できなかった理由を抽出することです。例外メッセージからこの情報を取得できたとしても、すべてのフィールドに問題がなくなるまで、フィールドを1つずつ検証します。
それでも問題が解決しない場合は、Pomm\Exception
スローされたものをキャッチして、そこからSQLエラーコードを取得します。
それが役に立てば幸い。
于 2012-11-16T12:50:57.903 に答える