Cakephp のデータベース制約からモデルの検証ルールを自動的に生成する簡単なソリューションを探しています。たとえば、データベース内のフィールドに NOT NULL 制約がある場合、そのフィールドに対して「空でない」検証ルールを作成する必要があります。
では、このようなことができるツールはありますか?
Cakephp のデータベース制約からモデルの検証ルールを自動的に生成する簡単なソリューションを探しています。たとえば、データベース内のフィールドに NOT NULL 制約がある場合、そのフィールドに対して「空でない」検証ルールを作成する必要があります。
では、このようなことができるツールはありますか?
CakePHP はデフォルトではこれをサポートしていませんが、私はこのアイデアが気に入っています。
ただし、AppModel::__construct() をオーバーロードし、 AppModel::beforeValidate() コールバックにコードを追加し、モデルが使用しているテーブルに CakeSchema を使用してスキーマをロードし、返されたスキーマをループしてルールを構築することで、それを実装できます。その場で $this->validate に設定します。
特定のモデルで実行したくない場合は、ブール値の autoValidationRules などの別のプロパティを追加できます。また、 notEmpty がまだ設定されていないかどうかを確認し、必要に応じて自動的に上書きしたりマージしたりしないでください。
編集: この動作を試してみてください。アイデアが気に入ったので、一緒にハックしました。今夜遅くに単体テストを追加する予定です。
https://github.com/burzum/BzUtils/blob/develop/Model/Behavior/AutoValidateBehavior.php
実際、CakePHP にはこのための組み込み機能はありません。
コンソールを使用したくない場合は、アプリケーションを設計できるオンライン ツールを使用できます: モデル、リレーション、および検証ルール。その後、列に適切な制約を含む SQL ファイルを自動的に生成し、モデルを使用できます。フィールド、コントローラー、およびビューの対応する検証規則: Online Cake Bake。
やりたいことを正確に行うことはできませんが、少なくともデータベースの制約と検証ルールを同時に設計できるため、多くの時間を節約できます。