私は車輪に新しいです(そして私はたくさんここに投稿していると確信しています)。CFWheels - 同じモデルを使用して2つの異なるフォームを検証します
"user"のコントローラの下に "register"と "login"という2つの形式があります。だから私のURLのように見える。これはうまく動作します - 私は単にinitメソッド内のページを「登録」の検証とuser.cfcを持っている私のモデルフォルダ内の瞬間
/ユーザー/登録/ /ユーザー/ログイン/
。
本質的に...私の質問は...私のログインフォームの検証に関するものです。 initメソッドまたは別のメソッドに常に検証を配置する必要がありますか?もしそうなら、私はこれをどのようにするのですか?それぞれのフォームにはさまざまなフィールドがあります...したがって、現在どのフォームが使用されているかを検出するためのロジックを知る必要があります。
希望はこれが理にかなっています。参考までに、私のuser.cfcモデルは、現在、次のようになります。
<cfcomponent extends="Model" output="true">
<cffunction name="init">
<cfset validate(property='userName', method='validateAlphaNumeric') />
<cfset validatesPresenceOf(properties='userName') />
<cfset validatesUniquenessOf(properties='userName') />
<cfset validatesFormatOf(property='userEmail', type='email', message="Email address is not in a valid format.") />
<cfset validatesPresenceOf(properties='userEmail') />
<cfset validatesUniquenessOf(properties='userEmail') />
<cfset validatesPresenceOf(properties='userPassword') />
<cfset validatesConfirmationOf(property='userPassword') />
<cfset validatesLengthOf(property="userToken", allowBlank=true) />
</cffunction>
<cffunction name="validateAlphaNumeric" access="private">
<cfif REFind("[^A-Za-z0-9]", this.userName, 1)>
<cfset addError(property="userName", message="User name can only contain letters and numbers.") />
</cfif>
</cffunction>
</cfcomponent>
おかげで、 マイケル。
最初の検証ルールでは、 'property = 'userName''は必要ありません。必要なのは 'method'引数だけです。 –