0

私は CakePHP でサイトを構築しています。サインアップ フォームとログイン フォームを同じページに配置して、両方とも同じコントローラーとモデルを使用したいと考えています。

そこで、UserLoginForm と UserRegisterForm という 2 つの新しいモデルを作成し、User モデルを拡張して、モデル内の各フォームの検証を行いました。

問題は、CakePHP がデータの送信先のデータベース フィールド名と一致するフォーム入力名を使用することを要求していることです。たとえば、ログイン フォームの Email フィールドはサインアップ フォームの Email フィールドと同じ名前を持ち、両方のフォームに検証エラーが表示されます。私は Cake を初めて使用するので、この問題を回避する方法を見つけるのに苦労しています。

よろしくお願いします!

4

1 に答える 1

3

モデルはマッチング テーブルのレコードであり、コントローラはアクションのリクエスタであると考える必要があります。

この特定のケースでは:

├── Controller/
│   ├── UsersController.php
└── Model/
    ├── User.php

Controller は、彼らが扱うメイン モデルにちなんで名付けられています。ケーキの他のものと同様に、これは変更できますが、読みやすさと後のメンテナンスのために避ける方がよいでしょう。

User両方ともテーブル内のレジスターに対して機能するため、両方のフォームの検証はモデル内にある必要がありusersます。最も可能性が高いのはコールバック メソッドです。

フォームごとにカスタム検証が必要なため、本のデータ検証セクションの「動的に検証ルールを変更する」を読む必要があります。

これが混乱を招く場合は、一歩下がって、これを読み、ブログ チュートリアルを実行することから始めてみてください。

この概念が落ち着いたら、CakePHP を気に入るはずです。

于 2013-06-05T00:15:21.643 に答える