0

昨年から、コーハン 3.0.7 のメンテナンスプロジェクトに携わってきました。最新バージョン (3.2) を調べていたときに、Kohana 3.0.7 で作業していたときには気付かなかった ORM 検証に出くわしました。私のプロジェクトでは、フォーム検証を使用して、モデル内のすべてのフォームを検証しました。http://kohanaframework.org/3.2/guide/orm/examples/validationを読んでいると、追加フィールド「パスワードの確認」の検証ルールがコントローラー自体に追加されていることがわかりました。だから、私は知りたい -

ORM 検証ルールをモデル ファイルに完全に移動できますか? できるとしたら、どうすればできるのでしょうか?

valuesメソッドは sql インジェクションを処理しますか?

4

1 に答える 1

1

モデルの検証をコントローラーに移動することはできませんし、移動するべきではありません。
あなたが提供した例では、いわゆる「追加の検証」を使用しました。
保存メソッド APIを見てください。追加のロジック (パスワードの一致など) を検証するValidationために後でメソッドで使用されるオプションの引数を取ります。 その理由は、モデルに「password_matching」と呼ばれるフィールドがないためです (その場合、このルールを関数に記述できます ;))、そのような場合には外部検証を使用する必要があります。 外部検証を使用するもう 1 つの例は、ファイルをアップロードし、アップロード結果に基づいて ORM モデルで操作を行うことです。 check
rules

はい、ORM は安全な SQL インジェクションを使用します (特に注意して使用する必要があるものをQuery Builder除く)。DB::expr

于 2012-06-25T14:23:04.330 に答える