2012-04-17 2 views
1

저는 바퀴가 새롭기 때문에 (그리고 저는 여기에 많이 올릴 것이라고 확신합니다.CFWheels - 동일한 모델을 사용하여 두 개의 다른 형식을 확인하십시오.

"user"컨트롤러 아래에 "register"와 "login"의 두 가지 형식이 있습니다. 그래서 내 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> 

감사합니다, 마이클.

+0

첫 번째 검증 규칙에서는'property = 'userName''이 필요하지 않습니다. 필요한 것은'method' 인수뿐입니다. –

답변

1

마이클,

init() 메소드에 모델 유효성 검사를해야합니다. 바퀴가 필요합니다. 그러나 로그인 페이지/호출에 모델 유효성 검사를 사용하거나 필요로하는지 확신하지 못합니다.

내가 누락 된 경우가 아니면 사용자가 사이트에 로그인 할 때 실제로 모델을 변경 (새 사용자 만들기 또는 기존 사용자 업데이트)하지 않습니다. DB 값과 비교하여 사용자 이름/비밀번호 콤보를 확인하기 만하면됩니다.

나인 경우 로그인을위한 클라이언트 측 유효성 검사 (필드 완성 등) 및 레지스터 모델 유효성 검사를 사용합니다.

HTH! 크레이그

이 URL에
+0

맞아요 Craig ... 로그인에 대한 유효성 검사가 필요하지 않을 수도 있지만 "사용자"아래에서 편집 페이지 또는 다른 양식을 만들고 싶다면 ... 같은 모델을 사용합니다 ... 내가 붙어있는 곳. 바라기를, 당신은 나가 의미하는 무슨을 알고있다. –

+0

내 생각 엔, 마이클. 내 바퀴 앱에는 사용자가 제한된 자료에 액세스하려고 할 때 인증되도록 내 모델에서 사용하는 필터가 있습니다. 필터 ("loginRequired")는 사용자가 로그인했는지 확인하고, 로그인하지 않은 경우 간단한 로그인 양식 이상인 내 "로그인"경로 (config/routes.cfm에서 설정)로 리디렉션합니다. 이 양식 (사용자 이름/암호 필드가 채워지는지 확인)에서 javascript 유효성 검사를 실행합니다. 그러나 내 관리자 페이지 (및 사용자 프로필 페이지)에서 사용자는 자신의 acct ...을 편집 할 수 있습니다.이 양식은 모델 유효성 검사를 사용하여 사용자 데이터가 save() 전에 올바른지 확인합니다. –

+1

동일한 유효성 검사 규칙이 'update()'시나리오에 잘 적용되어야합니다. 유효한 데이터를 포함하고 새로 변경된 필드를 저장해야하는 개체를로드합니다. 당신이 나를 믿지 않는다면, 그냥 시도하십시오. :) –

관련 문제