Doug,
Thanks for the help, do you have any exmples of this?On 7/8/06, Doug Hughes <[EMAIL PROTECTED]> wrote:I tend to put extra data into instance variables in the custom record and create getters/setters for them. They won't be persisted, but they can be used in validation like this.
Doug
From: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED]] On Behalf Of Dan Vega
Sent: Saturday, July 08, 2006 9:25 AM
To: [email protected]
Subject: Re: [Reactor for CF] Extended Validation
I figured out how to do that from one of the list archive, but thanks for your input. I am still running into a validation issue though. Say you have an EmailAddress field in your database but your form has an emailaddress & emailaddress2 for validation that the user is correctly entering their email address. When you get to setEmailAddress( form.emailaddress) that works fine but you can't setEmailAddress2(form.emailadress2) because its not a database field nor should it be. So that begs the question how can extend validation for a field that does not belong in our database. I am just wondering if anyone has run into this because I could see myself doing this in many places.
On 7/8/06, Erik-Jan Jaquet <[EMAIL PROTECTED]> wrote:
Hi Dan,
Waht I have done, is the following:
- in the 'reactor-created' cfc's find the validator cfc for the object that you want to add to.
- In this cfc, add a function for the field you want to add to, for instance validateUser
- First call <cfset super.validateEmail(arguments.UserRecord, arguments.ErrorCollection) /> to run all the reactor validation
- Then add calls to your own functions, that you can add below the function you are in know.
My CFC looks like this:
<cfcomponent hint="I am the validator object for the User object. I am generated, but not overwritten if I exist. You are safe to edit me."
extends="reactor.project.cello.Validator.UserValidator">
<!--- Place custom code here, it will not be overwritten --->
<!--- validateEmail --->
<cffunction name="validateEmail" access="public" hint="I validate the Email field" output="false" returntype="reactor.util.ErrorCollection">
<cfargument name="UserRecord" hint="I am the UserRecord to validate." required="no" type="reactor.project.cello.Record.UserRecord" />
<cfargument name="ErrorCollection" hint="I am the error collection to populate. If not provided a new collection is created." required="no" type="reactor.util.ErrorCollection" default="#createErrorCollection(arguments.UserRecord._getDictionary())#" />
<cfset super.validateEmail(arguments.UserRecord, arguments.ErrorCollection) />
<!--- validate Email is unique --->
<cfset validateEmailIsUnique(arguments.UserRecord, arguments.ErrorCollection)>
<!--- validate Email is correct --->
<cfset validateEmailIsCorrect(arguments.UserRecord, arguments.ErrorCollection)>
<cfreturn arguments.ErrorCollection />
</cffunction>
<!--- validateEmailIsUnique --->
<cffunction name="validateEmailIsUnique" access="public" hint="I validate that the email field is unique" output="false" returntype="reactor.util.ErrorCollection">
<cfargument name="UserRecord" hint="I am the UserRecord to validate." required="no" type="reactor.project.cello.Record.UserRecord" />
<cfargument name="ErrorCollection" hint="I am the error collection to populate. If not provided a new collection is created." required="no" type="reactor.util.ErrorCollection" default="#createErrorCollection(arguments.UserRecord._getDictionary())#" />
<cfset var UserGateway = _getReactorFactory().createGateway("User") />
<!--- insure that another user with the same username does not already exist --->
<cfif UserGateway.validateEmail(arguments.UserRecord.getUserId(), arguments.UserRecord.getEmail())>
<cfset arguments.ErrorCollection.addError("User.email.duplicateEmail") />
</cfif>
<cfreturn arguments.ErrorCollection />
</cffunction>
<!--- validateEmailIsCorrect --->
<cffunction name="validateEmailIsCorrect" access="public" hint="I validate that the email field is a correct emailaddress" output="false" returntype="reactor.util.ErrorCollection">
<cfargument name="UserRecord" hint="I am the UserRecord to validate." required="no" type="reactor.project.cello.Record.UserRecord" />
<cfargument name="ErrorCollection" hint="I am the error collection to populate. If not provided a new collection is created." required="no" type="reactor.util.ErrorCollection" default="#createErrorCollection(arguments.UserRecord._getDictionary())#" />
<cfif NOT isValid("Email", arguments.UserRecord.getEmail())>
<cfset arguments.ErrorCollection.addError("User.email.InCorrectEmail") />
</cfif>
<cfreturn arguments.ErrorCollection />
</cffunction>
</cfcomponent>
I believe this is copied from the MG / Reactor Blog sample from the Reactor site.
Good luck!
Erik-Jan
Van: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED]] Namens Dan Vega
Verzonden: Saturday, July 08, 2006 2:55 AM
Aan: [email protected]
Onderwerp: [Reactor for CF] Extended Validation
Does anyone have an example of custom validation? I do not wish to overwrite the curret validation,just to extend it. I have a userRecord that contains a bunch of basic info that reactor is already validating. I would like to aded custom validation so i can find out if
1.) the users email address & confirm email address from the user signup form match.
2.) the users password & confirm password from the form match.
Im just not quite sure how to do this, thanks!!!
--
Dan Vega
[EMAIL PROTECTED]
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
Dan Vega
[EMAIL PROTECTED]
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
Dan Vega
[EMAIL PROTECTED]
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
Dan Vega
[EMAIL PROTECTED]
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
