2

皆さん、私たちの会社は、FuelPHP を開発のメイン フレームワークとして使い始めようとしています。

個人的に私は CakePHP のバックグラウンドを持っており、Cake がバリデーションなどの多くのことを処理する方法が本当に気に入っています。つまり、モデルで一度ルールを設定すると、すべてが連携してルールを尊重します。

ただし、Fuel に移行すると、コントローラーで検証ルールを設定する必要があるという別のアプローチがあるようです。これの欠点は、多くのコードが繰り返されることです。つまり、追加アクションと編集アクションしかない場合でも、ルールを定義する必要があるのは 2 つの場所です。

このため、誰かが私を助けて、モデルが検証を処理できるかどうかを教えてくれることを望んでいましたか?

ありがとうございました :)

4

1 に答える 1

3

最近忙しすぎて、残念ながらあまりドキュメントに取り組めていません。いくつかのオプションがあります。

  1. Fieldset クラスのインスタンスを渡し、すべてのフィールド (検証を含む) をセットアップする必要があるという検証で使用する set_form_fields() を作成します。ここで例を見つけることができます(古いバージョンの Fuel に基づいています)。モデルでそのようなメソッドを取得したら、使用できますValidation::factory()->add_model('Model_Example') (ルールはモデル内で作成することもでき、プレフィックスを付けて_validation_、上記のようにモデルを追加するときに使用できます)

  2. Orm\Model クラスのプロパティに検証規則を設定し、$_properties1 のようにモデルを追加します (Orm\Model には set_form_fields() メソッドが組み込まれています)。

  3. Orm\Observer_Validation を Orm\Model$_observersプロパティに追加すると、モデルの保存時に検証が行われ、ValidationFailed失敗すると例外がスローされます。エラーは、この後に Validation クラスからクラス名でフェッチできます。たとえば、Model_Example インスタンスが検証のために保存に失敗した場合、使用して完全な検証インスタンスをValidation::instance('Model_Example')フェッチするか、使用してエラーをフェッチできます。Validation::instance('Model_Example')->show_errors()

于 2011-05-19T14:58:37.297 に答える