私は多段階フォームを暗示しているので、私のモデルの特定のフィールドを検証したいと思います。 This method CakePHP 2はバージョン3で動作しません。続行するには?cakephpのモデルを部分的に検証する方法3
0
A
答えて
1
ケーキ3のように見えますが、validates()メソッドがなくなりました。検証は、newEntity
またはpatchEntity
に電話すると発生します。 1つずつ検証することが重要な場合は、各フィールドを別々にパッチし、それぞれのフィールドの後にエラーをチェックする必要があります。あたり
http://book.cakephp.org/3.0/en/orm/validation.html#using-validation-as-application-rules
3
として
$userEntity = $usersTable->newEntity();
$userEntity = $usersTable->patchEntity(['email' => 'not an email!!']);
if($userEntity->errors('email')){
return false; // Invalid email
}
using a different validation set上のドキュメントを参照してください。フォームの各ステップを検証する関数を設定し、newEntity
またはpatchEntity
呼び出しで使用する関数を指定する必要があります。複数ステップのフォームの場合、2番目のステップの検証では、おそらく最初のステップの検証が追加され、その間にデータを改ざんしていないことが保証されます。 STEP1用コントローラ機能で
:だから、あなたはこのようなものを持っていると思います
$entity = $table->newEntity(
$this->request->data,
['validate' => 'step1']
);
とSTEP2のためのコントローラ機能で:
$entity = $table->newEntity(
$this->request->data,
['validate' => 'step2']
);
など
であなたのテーブルクラス:
public function validationStep1($validator)
{
$validator
->add('email', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('Provide a valid email'),
])
->add('username', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('Provide a valid username')
]);
return $validator;
}
(おそらく、電子メールアドレスが適切であることを確認するなどの他の検証がある)。
そして
public function validationStep2($validator)
{
$validator = $this->validationStep1($validator)
->add('first_name', 'notEmpty', [
'rule' => 'notEmpty',
'message' => __('Provide your first name'),
]);
return $validator;
}
のように。
関連する問題
- 1. cakephpの必須関連モデルを検証する方法3
- 2. MVC:警告を表示してモデルを検証する、「部分的な検証」テクニックの使用方法
- 3. 部分的検証ASP.NET MVC
- 4. 関連モデル(CakePHP)の検証ルールにアクセス
- 5. CakePHP 3:フォームを検証する
- 6. 外部サービスからの検証でモデルをスタブする方法
- 7. CakePHPの:モデルの検証ルール、フォームフィールド、===
- 8. 分度器でpageobjectモデルに検証を入れる方法
- 9. ASP.NET MVC 3モデルの検証
- 10. マルチセレクションの検証CakePHP 3 belongsToManyのエントリ
- 11. ドメイン文字列をCakePHPモデルの検証メッセージに追加する
- 12. ASP.NETクライアント検証Javascript部分的レンダリング
- 13. ノックアウトJS +部分的なビューと検証?
- 14. user cakephpを検証しない3
- 15. 動的モデル検証
- 16. SCSSでは、部分的に部分的な部分をインポートする方法
- 17. cakephp 3.xモデルで現在のコントローラーアクションを取得する方法
- 18. 3レベルの部分的にネストされたモデル
- 19. CakePHPラジオボタンの検証方法は?
- 20. MVC部分検証
- 21. CakePHPで関連するモデルの条件で検索する3
- 22. オンザフライ/ダイナミックCakePhp 3検証とFormHelper
- 23. レールの静的モデル検証
- 24. ASP.NET MVC 3:モデル外部の情報が必要な場合のモデルの検証
- 25. イベントでCakephp 3の認証コンポーネントを使用する方法
- 26. 検証CakePHPの
- 27. サブディレクトリのモデルを整理するCakePHP 3
- 28. 部分ビューフォームでクライアント側の検証を行う方法
- 29. Rails 3関連モデルのフィールドの検証
- 30. 内部モデルの検証をMVC 3に組み込む方法は?私のプロジェクトで
複数のフィールドはどうですか?私はこの 'if($ userEntity-> errors(['email'、 'username']))'のように進んでいますが、他のすべてのフィールドについてもメッセージを受け取ります。 – sk001
hmm面白いです。おそらく[リンク](http://book.cakephp.org/3.0/en/core-libraries/validation.html#validating-data)を試してみてください。 '$ errors = $ validator-> errors($ this-> request-> data()); if(isset($ errors ['email'])){ falseを返します。 } ' –