<?xml version="1.0"?>
<functions wheelsversion="1.1.x">
	
		<function name="accessibleProperties">
			<returntype>void</returntype>
			<description>Use this method to specify which properties can be set through mass assignment.</description>
			<examples><![CDATA[<!--- In `models/User.cfc`, only `isActive` can be set through mass assignment operations like `updateAll()` --->
<cffunction name="init">
	<cfset accessibleProperties("isActive")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Property name (or list of property names) that are allowed to be altered through mass assignment.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="addDefaultRoutes">
			<returntype>void</returntype>
			<description>Adds the default Wheels routes (for example, `[controller]/[action]/[key]`, etc.) to your application. Only use this method if you have set `loadDefaultRoutes` to `false` and want to control exactly where in the route order you want to place the default routes.</description>
			<examples><![CDATA[<!--- Adds the default routes to your application (done in `config/routes.cfm`) --->
<cfset addDefaultRoutes()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="addError">
			<returntype>void</returntype>
			<description>Adds an error on a specific property.</description>
			<examples><![CDATA[<!--- Add an error to the `email` property --->
<cfset this.addError(property="email", message="Sorry, you are not allowed to use that email. Try again, please.")>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property you want to add an error on.</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The error message (such as &quot;Please enter a correct name in the form field&quot; for example).</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A name to identify the error by (useful when you need to distinguish one error from another one set on the same object and you don&apos;t want to use the error message itself for that).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="addErrorToBase">
			<returntype>void</returntype>
			<description>Adds an error on the object as a whole (not related to any specific property).</description>
			<examples><![CDATA[<!--- Add an error on the object --->
<cfset this.addErrorToBase(message="Your email address must be the same as your domain name.")>]]></examples>
			<arguments>
				
						<argument name="message">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The error message (such as &quot;Please enter a correct name in the form field&quot; for example).</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A name to identify the error by (useful when you need to distinguish one error from another one set on the same object and you don&apos;t want to use the error message itself for that).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="addFormat">
			<returntype>void</returntype>
			<description>Adds a new MIME format to your Wheels application for use with responding to multiple formats.</description>
			<examples><![CDATA[<!--- Add the `js` format --->
<cfset addFormat(extension="js", mimeType="text/javascript")>

<!--- Add the `ppt` and `pptx` formats --->
<cfset addFormat(extension="ppt", mimeType="application/vnd.ms-powerpoint")>
<cfset addFormat(extension="pptx", mimeType="application/vnd.ms-powerpoint")>]]></examples>
			<arguments>
				
						<argument name="extension">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>File extension to add.</description>
						</argument>
					
						<argument name="mimeType">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Matching MIME type to associate with the file extension.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="addRoute">
			<returntype>void</returntype>
			<description>Adds a new route to your application.</description>
			<examples><![CDATA[<!--- Example 1: Adds a route which will invoke the `profile` action on the `user` controller with `params.userName` set when the URL matches the `pattern` argument --->
<cfset addRoute(name="userProfile", pattern="user/[username]", controller="user", action="profile")>

<!--- Example 2: Category/product URLs. Note the order of precedence is such that the more specific route should be defined first so Wheels will fall back to the less-specific version if it's not found --->
<cfset addRoute(name="product", pattern="products/[categorySlug]/[productSlug]", controller="products", action="product")>
<cfset addRoute(name="productCategory", pattern="products/[categorySlug]", controller="products", action="category")>
<cfset addRoute(name="products", pattern="products", controller="products", action="index")>

<!--- Example 3: Change the `home` route. This should be listed last because it is least specific --->
<cfset addRoute(name="home", pattern="", controller="main", action="index")>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name for the route. This is referenced as the `name` argument in functions based on @URLFor like @linkTo, @startFormTag, etc.</description>
						</argument>
					
						<argument name="pattern">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The URL pattern that the route will match.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Controller to call when route matches (unless the controller name exists in the pattern).</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Action to call when route matches (unless the action name exists in the pattern).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterCreate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after a new object is created.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterCreate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterDelete">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an object is deleted.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterDelete("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterFind">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an existing object has been initialized (which is usually done with the @findByKey or @findOne method).</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `setTime` method after getting objects or records with one of the finder methods --->
<cffunction name="init">
	<cfset afterFind("setTime")>
</cffunction>

<cffunction name="setTime">
	<cfset arguments.fetchedAt = Now()>
	<cfreturn arguments>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterInitialization">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an object has been initialized.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterInitialization("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterNew">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after a new object has been initialized (which is usually done with the @new method).</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterNew("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterSave">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an object is saved.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterSave("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterUpdate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an existing object is updated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterUpdate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterValidation">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an object is validated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterValidation("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterValidationOnCreate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after a new object is validated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterValidationOnCreate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="afterValidationOnUpdate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called after an existing object is validated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset afterValidationOnUpdate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="allChanges">
			<returntype>struct</returntype>
			<description>Returns a struct detailing all changes that have been made on the object but not yet saved to the database.</description>
			<examples><![CDATA[<!--- Get an object, change it, and then ask for its changes (will return a struct containing the changes, both property names and their values) --->
<cfset member = model("member").findByKey(params.memberId)>
<cfset member.firstName = params.newFirstName>
<cfset member.email = params.newEmail>
<cfset allChanges = member.allChanges()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="allErrors">
			<returntype>array</returntype>
			<description>Returns an array of all the errors on the object.</description>
			<examples><![CDATA[<!--- Get all the errors for the `user` object --->
<cfset errorInfo = user.allErrors()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="autoLink">
			<returntype>string</returntype>
			<description>Turns all URLs and email addresses into hyperlinks.</description>
			<examples><![CDATA[#autoLink("Download Wheels from http://cfwheels.org/download")#
-> Download Wheels from <a href="http://cfwheels.org/download">http://cfwheels.org/download</a>

#autoLink("Email us at info@cfwheels.org")#
-> Email us at <a href="mailto:info@cfwheels.org">info@cfwheels.org</a>]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to create links in.</description>
						</argument>
					
						<argument name="link">
							<type>string</type>
							<required>0</required>
							<defaultvalue>all</defaultvalue>
							<description>Whether to link URLs, email addresses or both. Possible values are: `all` (default), `URLs` and `emailAddresses`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="automaticValidations">
			<returntype>void</returntype>
			<description>Whether or not to enable default validations for this model.</description>
			<examples><![CDATA[<!--- In `models/User.cfc`, disable automatic validations. In this case, automatic validations are probably enabled globally, but we want to disable just for this model --->
<cffunction name="init">
	<cfset automaticValidations(false)>
</cffunction>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="average">
			<returntype>any</returntype>
			<description>Calculates the average value for a given property. Uses the SQL function `AVG`. If no records can be found to perform the calculation on you can use the `ifNull` argument to decide what should be returned.</description>
			<examples><![CDATA[<!--- Get the average salary for all employees --->
<cfset avgSalary = model("employee").average("salary")>

<!--- Get the average salary for employees in a given department --->
<cfset avgSalary = model("employee").average(property="salary", where="departmentId=#params.key#")>

<!--- Make sure a numeric value is always returned if no records are calculated --->
<cfset avgSalary = model("employee").average(property="salary", where="salary BETWEEN #params.min# AND #params.max#", ifNull=0>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property to calculate the average for.</description>
						</argument>
					
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="distinct">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>When `true`, `AVG` will be performed only on each unique instance of a value, regardless of how many times the value occurs.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="ifNull">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The value returned if no records are found. Common usage is to set this to `0` to make sure a numeric value is always returned instead of a blank string.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeCreate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before a new object is created.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeCreate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeDelete">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before an object is deleted.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeDelete("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeSave">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before an object is saved.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeSave("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeUpdate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before an existing object is updated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeUpdate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeValidation">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before an object is validated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeValidation("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeValidationOnCreate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before a new object is validated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeValidationOnCreate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="beforeValidationOnUpdate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called before an existing object is validated.</description>
			<examples><![CDATA[<!--- Instruct Wheels to call the `fixObj` method --->
<cfset beforeValidationOnUpdate("fixObj")>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names that should be called when this callback event occurs in an object&apos;s life cycle (can also be called with the `method` argument).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="belongsTo">
			<returntype>void</returntype>
			<description>Sets up a `belongsTo` association between this model and the specified one. Use this association when this model contains a foreign key referencing another model.</description>
			<examples><![CDATA[<!--- Specify that instances of this model belong to an author. (The table for this model should have a foreign key set on it, typically named `authorid`.) --->
<cfset belongsTo("author")>

<!--- Same as above, but because we have broken away from the foreign key naming convention, we need to set `modelName` and `foreignKey` --->
<cfset belongsTo(name="bookWriter", modelName="author", foreignKey="authorId")>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Gives the association a name that you refer to when working with the association (in the `include` argument to @findAll, to name one example).</description>
						</argument>
					
						<argument name="modelName">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of associated model (usually not needed if you follow Wheels conventions because the model name will be deduced from the `name` argument).</description>
						</argument>
					
						<argument name="foreignKey">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Foreign key property name (usually not needed if you follow Wheels conventions since the foreign key name will be deduced from the `name` argument).</description>
						</argument>
					
						<argument name="joinType">
							<type>string</type>
							<required>0</required>
							<defaultvalue>inner</defaultvalue>
							<description>Use to set the join type when joining associated tables. Possible values are `inner` (for `INNER JOIN`) and `outer` (for `LEFT OUTER JOIN`).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="buttonTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a button `form` control.</description>
			<examples><![CDATA[<!--- view code --->
<cfoutput>
    #startFormTag(action="something")#
        <!--- form controls go here --->
        #buttonTag(content="Submit this form", value="save")#
    #endFormTag()#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="content">
							<type>string</type>
							<required>0</required>
							<defaultvalue>Save changes</defaultvalue>
							<description>Content to display inside the button.</description>
						</argument>
					
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue>submit</defaultvalue>
							<description>The type for the button: `button`, `reset`, or `submit`.</description>
						</argument>
					
						<argument name="image">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>File name of the image file to use in the button form control.</description>
						</argument>
					
						<argument name="value">
							<type>string</type>
							<required>0</required>
							<defaultvalue>save</defaultvalue>
							<description>The value of the button when submitted.</description>
						</argument>
					
						<argument name="disable">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Whether or not to disable the button upon clicking. (Prevents double-clicking.)</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="buttonTo">
			<returntype>string</returntype>
			<description>Creates a form containing a single button that submits to the URL. The URL is built the same way as the @linkTo function.</description>
			<examples><![CDATA[#buttonTo(text="Delete Account", action="perFormDelete", disable="Wait...")#]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The text content of the button.</description>
						</argument>
					
						<argument name="confirm">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass a message here to cause a JavaScript confirmation dialog box to pop up containing the message.</description>
						</argument>
					
						<argument name="image">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>If you want to use an image for the button pass in the link to it here (relative from the `images` folder).</description>
						</argument>
					
						<argument name="disable">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass in `true` if you want the button to be disabled when clicked (can help prevent multiple clicks), or pass in a string if you want the button disabled and the text on the button updated (to &quot;please wait...&quot;, for example).</description>
						</argument>
					
						<argument name="route">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of a route that you have configured in `config/routes.cfm`.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the controller to include in the URL.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the action to include in the URL.</description>
						</argument>
					
						<argument name="key">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Key(s) to include in the URL.</description>
						</argument>
					
						<argument name="params">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Any additional params to be set in the query string.</description>
						</argument>
					
						<argument name="anchor">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Sets an anchor name to be appended to the path.</description>
						</argument>
					
						<argument name="onlyPath">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>If `true`, returns only the relative URL (no protocol, host name or port).</description>
						</argument>
					
						<argument name="host">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current host.</description>
						</argument>
					
						<argument name="protocol">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current protocol.</description>
						</argument>
					
						<argument name="port">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>Set this to override the current port number.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="caches">
			<returntype>void</returntype>
			<description>Tells Wheels to cache one or more actions.</description>
			<examples><![CDATA[<cfset caches(actions="browseByUser,browseByTitle", time=30)>]]></examples>
			<arguments>
				
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Action(s) to cache. This argument is also aliased as `actions`.</description>
						</argument>
					
						<argument name="time">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>60</defaultvalue>
							<description>Minutes to cache the action(s) for.</description>
						</argument>
					
						<argument name="static">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to tell Wheels that this is a static page and that it can skip running the controller filters (before and after filters set on actions) and application events (onSessionStart, onRequestStart etc).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="capitalize">
			<returntype>string</returntype>
			<description>Returns the text with the first character converted to uppercase.</description>
			<examples><![CDATA[<!--- Capitalize a sentence, will result in "Wheels is a framework" --->
#capitalize("wheels is a framework")#]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Text to capitalize.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="changedFrom">
			<returntype>string</returntype>
			<description>Returns the previous value of a property that has changed. Returns an empty string if no previous value exists. Wheels will keep a note of the previous property value until the object is saved to the database.</description>
			<examples><![CDATA[<!--- Get a member object and change the `email` property on it --->
<cfset member = model("member").findByKey(params.memberId)>
<cfset member.email = params.newEmail>

<!--- Get the previous value (what the `email` property was before it was changed)--->
<cfset oldValue = member.changedFrom("email")>

<!--- The above can also be done using a dynamic function like this --->
<cfset oldValue = member.emailChangedFrom()>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of property to get the previous value for.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="changedProperties">
			<returntype>string</returntype>
			<description>Returns a list of the object properties that have been changed but not yet saved to the database.</description>
			<examples><![CDATA[<!--- Get an object, change it, and then ask for its changes (will return a list of the property names that have changed, not the values themselves) --->
<cfset member = model("member").findByKey(params.memberId)>
<cfset member.firstName = params.newFirstName>
<cfset member.email = params.newEmail>
<cfset changedProperties = member.changedProperties()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="checkBox">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a check box form control based on the supplied `objectName` and `property`. In most cases, this function generates a form field that should represent a `boolean` style field in your data. Use @checkBoxTag or @hasManyCheckBox to generate check boxes for selecting multiple values. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic example of a check box for a boolean field --->
<cfoutput>
    #checkBox(objectName="photo", property="isPublic", label="Display this photo publicly.")#
</cfoutput>

<!--- Shows check boxes for selecting public access for all photos provided by the `photos` association and nested properties --->
<cfoutput>
	<cfloop from="1" to="#ArrayLen(user.photos)#" index="i">
		<div>
			<h3>#user.photos[i].title#:</h3>
			<div>
				#checkBox(objectName="user", association="photos", position=i, property="isPublic", label="Display this photo publicly.")#
			</div>
		</div>
	</cfloop>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="checkedValue">
							<type>string</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>The value of the check box when it&apos;s in the `checked` state.</description>
						</argument>
					
						<argument name="uncheckedValue">
							<type>string</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>The value of the check box when it&apos;s in the `unchecked` state.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="checkBoxTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a check box form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Example 1: Basic usage involves a `label`, `name`, and `value` --->
<cfoutput>
    #checkBoxTag(name="subscribe", value="true", label="Subscribe to our newsletter", checked=false)#
</cfoutput>

<!--- Example 2: Loop over a query to display choices and whether or not they are checked --->
<!--- - Controller code --->
<cfset pizza = model("pizza").findByKey(session.pizzaId)>
<cfset selectedToppings = pizza.toppings()>
<cfset toppings = model("topping").findAll(order="name")>

<!--- View code --->
<fieldset>
	<legend>Toppings</legend>
	<cfoutput query="toppings">
		#checkBoxTag(name="toppings", value="true", label=toppings.name, checked=YesNoFormat(ListFind(ValueList(selectedToppings.id), toppings.id))#
	</cfoutput>
</fieldset>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="checked">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not the check box should be checked by default.</description>
						</argument>
					
						<argument name="value">
							<type>string</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Value of check box in its `checked` state.</description>
						</argument>
					
						<argument name="uncheckedValue">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The value of the check box when it&apos;s on the `unchecked` state.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="clearErrors">
			<returntype>void</returntype>
			<description>Clears out all errors set on the object or only the ones set for a specific property or name.</description>
			<examples><![CDATA[<!--- Clear all errors on the object as a whole --->
<cfset this.clearErrors()>

<!--- Clear all errors on `firstName` --->
<cfset this.clearErrors("firstName")>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specify a property name here if you want to clear all errors set on that property.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specify an error name here if you want to clear all errors set with that error name.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="columnDataForProperty">
			<returntype>any</returntype>
			<description>Returns a struct with data for the named property.</description>
			<examples><![CDATA[<!--- Get an object, set a value and then see if the property exists --->
<cfset employee = model("employee").new()>
<cfset employee.columnDataForProperty("firstName")><!--- returns column struct --->]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of column to retrieve data for.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="columnForProperty">
			<returntype>any</returntype>
			<description>Returns the column name mapped for the named model property.</description>
			<examples><![CDATA[<!--- Get an object, set a value and then see if the property exists --->
<cfset employee = model("employee").new()>
<cfset employee.columnForProperty("firstName")><!--- returns column name, in this case "firstname" if the convention is used --->]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of property to inspect.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="columnNames">
			<returntype>string</returntype>
			<description>Returns a list of column names in the table mapped to this model. The list is ordered according to the columns&apos; ordinal positions in the database table.</description>
			<examples><![CDATA[<!--- Get a list of all the column names in the table mapped to the `author` model --->
<cfset columns = model("author").columnNames()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="columns">
			<returntype>array</returntype>
			<description>Returns an array of columns names for the table associated with this class. Does not include calculated properties that will be generated by the Wheels ORM.</description>
			<examples><![CDATA[<!--- Get the columns names in the order they are in the database --->
<cfset employee = model("employee").columns()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="compareTo">
			<returntype>boolean</returntype>
			<description>Pass in another Wheels model object to see if the two objects are the same.</description>
			<examples><![CDATA[<!--- Load a user requested in the URL/form and restrict access if it doesn't match the user stored in the session --->
<cfset user = model("user").findByKey(params.key)>
<cfif not user.compareTo(session.user)>
	<cfset renderPage(action="accessDenied")>
</cfif>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="contentFor">
			<returntype>void</returntype>
			<description>Used to store a section&apos;s output for rendering within a layout. This content store acts as a stack, so you can store multiple pieces of content for a given section.</description>
			<examples><![CDATA[<!--- In your view --->
<cfsavecontent variable="mySidebar">
<h1>My Sidebar Text</h1>
</cfsavecontent>
<cfset contentFor(sidebar=mySidebar)>

<!--- In your layout --->
<html>
<head>
    <title>My Site</title>
</head>
<body>

<cfoutput>
#includeContent("sidebar")#

#includeContent()#
</cfoutput>

</body>
</html>]]></examples>
			<arguments>
				
						<argument name="position">
							<type>any</type>
							<required>0</required>
							<defaultvalue>last</defaultvalue>
							<description>The position in the section&apos;s stack where you want the content placed. Valid values are `first`, `last`, or the numeric position.</description>
						</argument>
					
						<argument name="overwrite">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to overwrite any of the content. Valid values are `false`, `true`, or `all`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="contentForLayout">
			<returntype>string</returntype>
			<description>Includes content for the `body` section, which equates to the output generated by the view template run by the request.</description>
			<examples><![CDATA[<!--- In `views/layout.cfm` --->
<html>
<head>
	<title>My Site</title>
</head>

<body>
<cfoutput>#contentForLayout()#</cfoutput>
</body>

</html>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="controller">
			<returntype>any</returntype>
			<description>Creates and returns a controller object with your own custom `name` and `params`. Used primarily for testing purposes.</description>
			<examples><![CDATA[<cfset testController = controller("users", params)>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the controller to create.</description>
						</argument>
					
						<argument name="params">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The params struct (combination of `form` and `URL` variables).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="count">
			<returntype>numeric</returntype>
			<description>Returns the number of rows that match the arguments (or all rows if no arguments are passed in). Uses the SQL function `COUNT`. If no records can be found to perform the calculation on, `0` is returned.</description>
			<examples><![CDATA[<!--- Count how many authors there are in the table --->
<cfset authorCount = model("author").count()>

<!--- Count how many authors that have a last name starting with an "A" --->
<cfset authorOnACount = model("author").count(where="lastName LIKE 'A%'")>

<!--- Count how many authors that have written books starting with an "A" --->
<cfset authorWithBooksOnACount = model("author").count(include="books", where="booktitle LIKE 'A%'")>

<!--- Count the number of comments on a specific post (a `hasMany` association from `post` to `comment` is required) --->
<!--- The `commentCount` method will call `model("comment").count(where="postId=#post.id#")` internally --->
<cfset aPost = model("post").findByKey(params.postId)>
<cfset amount = aPost.commentCount()>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="create">
			<returntype>any</returntype>
			<description>Creates a new object, saves it to the database (if the validation permits it), and returns it. If the validation fails, the unsaved object (with errors added to it) is still returned. Property names and values can be passed in either using named arguments or as a struct to the `properties` argument.</description>
			<examples><![CDATA[<!--- Create a new author and save it to the database --->
<cfset newAuthor = model("author").create(params.author)>

<!--- Same as above using named arguments --->
<cfset newAuthor = model("author").create(firstName="John", lastName="Doe")>

<!--- Same as above using both named arguments and a struct --->
<cfset newAuthor = model("author").create(active=1, properties=params.author)>

<!--- If you have a `hasOne` or `hasMany` association setup from `customer` to `order`, you can do a scoped call. (The `createOrder` method below will call `model("order").create(customerId=aCustomer.id, shipping=params.shipping)` internally.) --->
<cfset aCustomer = model("customer").findByKey(params.customerId)>
<cfset anOrder = aCustomer.createOrder(shipping=params.shipping)>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to reload the object from the database once an insert/update has completed.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="cycle">
			<returntype>string</returntype>
			<description>Cycles through list values every time it is called.</description>
			<examples><![CDATA[<!--- Alternating table row colors --->
<table>
	<thead>
		<tr>
			<th>Name</th>
			<th>Phone</th>
		</tr>
	</thead>
	<tbody>
		<cfoutput query="employees">
			<tr class="#cycle("odd,even")#">
				<td>#employees.name#</td>
				<td>#employees.phone#</td>
			</tr>
		</cfoutput>
	</tbody>
</table>

<!--- Alternating row colors and shrinking emphasis --->
<cfoutput query="employees" group="departmentId">
	<div class="#cycle(values="even,odd", name="row")#">
		<ul>
			<cfoutput>
				<cfset rank = cycle(values="president,vice-president,director,manager,specialist,intern", name="position")>
				<li class="#rank#">#categories.categoryName#</li>
				<cfset resetCycle("emphasis")>
			</cfoutput>
		</ul>
	</div>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="values">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>List of values to cycle through.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue>default</defaultvalue>
							<description>Name to give the cycle. Useful when you use multiple cycles on a page.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="dataSource">
			<returntype>void</returntype>
			<description>Use this method to override the data source connection information for this model.</description>
			<examples><![CDATA[<!--- In models/User.cfc --->
<cffunction name="init">
	<!--- Tell Wheels to use the data source named `users_source` instead of the default one whenever this model makes SQL calls  --->
  			<cfset dataSource("users_source")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="datasource">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The data source name to connect to.</description>
						</argument>
					
						<argument name="username">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The username for the data source.</description>
						</argument>
					
						<argument name="password">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The password for the data source.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="dateSelect">
			<returntype>string</returntype>
			<description>Builds and returns a string containing three select form controls for month, day, and year based on the supplied `objectName` and `property`.</description>
			<examples><![CDATA[<!--- View code --->
<cfoutput>
	#dateSelect(objectName="user", property="dateOfBirth")#
</cfoutput>

<!--- Show fields to select month and year --->
<cfoutput>
	#dateSelect(objectName="order", property="expirationDate", order="month,year")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue>month,day,year</defaultvalue>
							<description>Use to change the order of or exclude date select tags.</description>
						</argument>
					
						<argument name="separator">
							<type>string</type>
							<required>0</required>
							<defaultvalue> </defaultvalue>
							<description>Use to change the character that is displayed between the date select tags.</description>
						</argument>
					
						<argument name="startYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2005</defaultvalue>
							<description>First year in select list.</description>
						</argument>
					
						<argument name="endYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2015</defaultvalue>
							<description>Last year in select list.</description>
						</argument>
					
						<argument name="monthDisplay">
							<type>string</type>
							<required>0</required>
							<defaultvalue>names</defaultvalue>
							<description>Pass in `names`, `numbers`, or `abbreviations` to control display.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>The label text to use in the form control. The label will be applied to all `select` tags, but you can pass in a list to cutomize each one individually.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
						<argument name="combine">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `false` to not combine the select parts into a single `DateTime` object.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="dateSelectTags">
			<returntype>string</returntype>
			<description>Builds and returns a string containing three select form controls (month, day, and year) based on a `name` and `value`.</description>
			<examples><![CDATA[<!--- This "Tag" version of function accepts `name` and `selected` instead of binding to a model object --->
<cfoutput>
	#dateSelectTags(name="dateStart", selected=params.dateStart)#
</cfoutput>

<!--- Show fields for month and year only --->
<cfoutput>
	#dateSelectTags(name="expiration", selected=params.expiration, order="month,year")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value of option that should be selected by default.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue>month,day,year</defaultvalue>
							<description>Use to change the order of or exclude date select tags.</description>
						</argument>
					
						<argument name="separator">
							<type>string</type>
							<required>0</required>
							<defaultvalue> </defaultvalue>
							<description>Use to change the character that is displayed between the date select tags.</description>
						</argument>
					
						<argument name="startYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2005</defaultvalue>
							<description>First year in select list.</description>
						</argument>
					
						<argument name="endYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2015</defaultvalue>
							<description>Last year in select list.</description>
						</argument>
					
						<argument name="monthDisplay">
							<type>string</type>
							<required>0</required>
							<defaultvalue>names</defaultvalue>
							<description>Pass in `names`, `numbers`, or `abbreviations` to control display.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control. The label will be applied to all `select` tags, but you can pass in a list to cutomize each one individually.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="combine">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `false` to not combine the select parts into a single `DateTime` object.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="dateTimeSelect">
			<returntype>string</returntype>
			<description>Builds and returns a string containing six select form controls (three for date selection and the remaining three for time selection) based on the supplied `objectName` and `property`.</description>
			<examples><![CDATA[<!--- View code --->
<cfoutput>
    #dateTimeSelect(objectName="article", property="publishedAt")#
</cfoutput>

<!--- Show fields for month, day, hour, and minute --->
<cfoutput>
	#dateTimeSelect(objectName="appointment", property="dateTimeStart", dateOrder="month,day", timeOrder="hour,minute")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="dateOrder">
							<type>string</type>
							<required>0</required>
							<defaultvalue>month,day,year</defaultvalue>
							<description>Use to change the order of or exclude date select tags.</description>
						</argument>
					
						<argument name="dateSeparator">
							<type>string</type>
							<required>0</required>
							<defaultvalue> </defaultvalue>
							<description>Use to change the character that is displayed between the date select tags.</description>
						</argument>
					
						<argument name="startYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2005</defaultvalue>
							<description>First year in select list.</description>
						</argument>
					
						<argument name="endYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2015</defaultvalue>
							<description>Last year in select list.</description>
						</argument>
					
						<argument name="monthDisplay">
							<type>string</type>
							<required>0</required>
							<defaultvalue>names</defaultvalue>
							<description>Pass in `names`, `numbers`, or `abbreviations` to control display.</description>
						</argument>
					
						<argument name="timeOrder">
							<type>string</type>
							<required>0</required>
							<defaultvalue>hour,minute,second</defaultvalue>
							<description>Use to change the order of or exclude time select tags.</description>
						</argument>
					
						<argument name="timeSeparator">
							<type>string</type>
							<required>0</required>
							<defaultvalue>:</defaultvalue>
							<description>Use to change the character that is displayed between the time select tags.</description>
						</argument>
					
						<argument name="minuteStep">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Pass in `10` to only show minute 10, 20, 30, etc.</description>
						</argument>
					
						<argument name="separator">
							<type>string</type>
							<required>0</required>
							<defaultvalue> - </defaultvalue>
							<description>Use to change the character that is displayed between the first and second set of select tags.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>The label text to use in the form control. The label will be applied to all `select` tags, but you can pass in a list to cutomize each one individually.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
						<argument name="combine">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `false` to not combine the select parts into a single `DateTime` object.</description>
						</argument>
					
						<argument name="twelveHour">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>whether to display the hours in 24 or 12 hour format. 12 hour format has AM/PM drop downs</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="dateTimeSelectTags">
			<returntype>string</returntype>
			<description>Builds and returns a string containing six select form controls (three for date selection and the remaining three for time selection) based on a `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of the function accepts a `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #dateTimeSelectTags(name="dateTimeStart", selected=params.dateTimeStart)#
</cfoutput>

<!--- Show fields for month, day, hour, and minute --->
<cfoutput>
	#dateTimeSelectTags(name="dateTimeStart", selected=params.dateTimeStart, dateOrder="month,day", timeOrder="hour,minute")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value of option that should be selected by default.</description>
						</argument>
					
						<argument name="dateOrder">
							<type>string</type>
							<required>0</required>
							<defaultvalue>month,day,year</defaultvalue>
							<description>Use to change the order of or exclude date select tags.</description>
						</argument>
					
						<argument name="dateSeparator">
							<type>string</type>
							<required>0</required>
							<defaultvalue> </defaultvalue>
							<description>Use to change the character that is displayed between the date select tags.</description>
						</argument>
					
						<argument name="startYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2005</defaultvalue>
							<description>First year in select list.</description>
						</argument>
					
						<argument name="endYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2015</defaultvalue>
							<description>Last year in select list.</description>
						</argument>
					
						<argument name="monthDisplay">
							<type>string</type>
							<required>0</required>
							<defaultvalue>names</defaultvalue>
							<description>Pass in `names`, `numbers`, or `abbreviations` to control display.</description>
						</argument>
					
						<argument name="timeOrder">
							<type>string</type>
							<required>0</required>
							<defaultvalue>hour,minute,second</defaultvalue>
							<description>Use to change the order of or exclude time select tags.</description>
						</argument>
					
						<argument name="timeSeparator">
							<type>string</type>
							<required>0</required>
							<defaultvalue>:</defaultvalue>
							<description>Use to change the character that is displayed between the time select tags.</description>
						</argument>
					
						<argument name="minuteStep">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Pass in `10` to only show minute 10, 20, 30, etc.</description>
						</argument>
					
						<argument name="separator">
							<type>string</type>
							<required>0</required>
							<defaultvalue> - </defaultvalue>
							<description>Use to change the character that is displayed between the first and second set of select tags.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control. The label will be applied to all `select` tags, but you can pass in a list to cutomize each one individually.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="combine">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `false` to not combine the select parts into a single `DateTime` object.</description>
						</argument>
					
						<argument name="twelveHour">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>whether to display the hours in 24 or 12 hour format. 12 hour format has AM/PM drop downs</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="daySelectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a select form control for the days of the week based on the supplied `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of the function accepts a `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #daySelectTag(name="dayOfWeek", selected=params.dayOfWeek)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The day that should be selected initially.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="delete">
			<returntype>boolean</returntype>
			<description>Deletes the object, which means the row is deleted from the database (unless prevented by a `beforeDelete` callback). Returns `true` on successful deletion of the row, `false` otherwise.</description>
			<examples><![CDATA[<!--- Get a post object and then delete it from the database --->
<cfset post = model("post").findByKey(33)>
<cfset post.delete()>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `deleteComment` method below will call `comment.delete()` internally.) --->
<cfset post = model("post").findByKey(params.postId)>
<cfset comment = model("comment").findByKey(params.commentId)>
<cfset post.deleteComment(comment)>]]></examples>
			<arguments>
				
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
						<argument name="softDelete">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to permanently delete a record, even if it has a soft delete column.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="deleteAll">
			<returntype>numeric</returntype>
			<description>Deletes all records that match the `where` argument. By default, objects will not be instantiated and therefore callbacks and validations are not invoked. You can change this behavior by passing in `instantiate=true`. Returns the number of records that were deleted.</description>
			<examples><![CDATA[<!--- Delete all inactive users without instantiating them (will skip validation and callbacks) --->
<cfset recordsDeleted = model("user").deleteAll(where="inactive=1", instantiate=false)>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `deleteAllComments` method below will call `model("comment").deleteAll(where="postId=#post.id#")` internally.) --->
<cfset post = model("post").findByKey(params.postId)>
<cfset howManyDeleted = post.deleteAllComments()>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="instantiate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to instantiate the object(s) first. When objects are not instantiated, any callbacks and validations set on them will be skipped.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
						<argument name="softDelete">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to permanently delete a record, even if it has a soft delete column.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="deleteByKey">
			<returntype>boolean</returntype>
			<description>Finds the record with the supplied key and deletes it. Returns `true` on successful deletion of the row, `false` otherwise.</description>
			<examples><![CDATA[<!--- Delete the user with the primary key value of `1` --->
<cfset result = model("user").deleteByKey(1)>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Primary key value(s) of the record to fetch. Separate with comma if passing in multiple primary key values. Accepts a string, list, or a numeric value.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
						<argument name="softDelete">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to permanently delete a record, even if it has a soft delete column.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="deleteOne">
			<returntype>boolean</returntype>
			<description>Gets an object based on conditions and deletes it.</description>
			<examples><![CDATA[<!--- Delete the user that signed up last --->
<cfset result = model("user").deleteOne(order="signupDate DESC")>

<!--- If you have a `hasOne` association setup from `user` to `profile` you can do a scoped call (the `deleteProfile` method below will call `model("profile").deleteOne(where="userId=#aUser.id#")` internally) --->
<cfset aUser = model("user").findByKey(params.userId)>
<cfset aUser.deleteProfile()>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Maps to the `ORDER BY` clause of the query. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
						<argument name="softDelete">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to permanently delete a record, even if it has a soft delete column.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="deobfuscateParam">
			<returntype>string</returntype>
			<description>Deobfuscates a value.</description>
			<examples><![CDATA[<!--- Get the original value from an obfuscated one --->
<cfset originalValue = deobfuscateParam("b7ab9a50")>]]></examples>
			<arguments>
				
						<argument name="param">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Value to deobfuscate.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="distanceOfTimeInWords">
			<returntype>string</returntype>
			<description>Pass in two dates to this method, and it will return a string describing the difference between them.</description>
			<examples><![CDATA[<cfset aWhileAgo = Now() - 30>
	<cfset rightNow = Now()>
	<cfoutput>#distanceOfTimeInWords(aWhileAgo, rightNow)#</cfoutput>]]></examples>
			<arguments>
				
						<argument name="fromTime">
							<type>date</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Date to compare from.</description>
						</argument>
					
						<argument name="toTime">
							<type>date</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Date to compare to.</description>
						</argument>
					
						<argument name="includeSeconds">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to include the number of seconds in the returned string.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="endFormTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing the closing `form` tag.</description>
			<examples><![CDATA[<!--- view code --->
<cfoutput>
    #startFormTag(action="create")#
        <!--- your form controls --->
    #endFormTag()#
</cfoutput>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="errorCount">
			<returntype>numeric</returntype>
			<description>Returns the number of errors this object has associated with it. Specify `property` or `name` if you wish to count only specific errors.</description>
			<examples><![CDATA[<!--- Check how many errors are set on the object --->
<cfif author.errorCount() GTE 10>
	<!--- Do something to deal with this very erroneous author here... --->
</cfif>

<!--- Check how many errors are associated with the `email` property --->
<cfif author.errorCount("email") gt 0>
	<!--- Do something to deal with this erroneous author here... --->
</cfif>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specify a property name here if you want to count only errors set on a specific property.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specify an error name here if you want to count only errors set with a specific error name.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="errorMessageOn">
			<returntype>string</returntype>
			<description>Returns the error message, if one exists, on the object&apos;s property. If multiple error messages exist, the first one is returned.</description>
			<examples><![CDATA[<!--- view code --->
	<cfoutput>
	    #errorMessageOn(objectName="user", property="email")#
	</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to display the error message for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to display the error message for.</description>
						</argument>
					
						<argument name="prependText">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the error message.</description>
						</argument>
					
						<argument name="appendText">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the error message.</description>
						</argument>
					
						<argument name="wrapperElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML element to wrap the error message in.</description>
						</argument>
					
						<argument name="class">
							<type>string</type>
							<required>0</required>
							<defaultvalue>errorMessage</defaultvalue>
							<description>CSS class to set on the wrapper element.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="errorMessagesFor">
			<returntype>string</returntype>
			<description>Builds and returns a list (`ul` tag with a class of `error-messages`) containing all the error messages for all the properties of the object (if any). Returns an empty string otherwise.</description>
			<examples><![CDATA[<!--- view code --->
<cfoutput>
    #errorMessagesFor(objectName="user")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to display error messages for.</description>
						</argument>
					
						<argument name="class">
							<type>string</type>
							<required>0</required>
							<defaultvalue>errorMessages</defaultvalue>
							<description>CSS class to set on the `ul` element.</description>
						</argument>
					
						<argument name="showDuplicates">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether or not to show duplicate error messages.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="errorsOn">
			<returntype>array</returntype>
			<description>Returns an array of all errors associated with the supplied property (and error name if passed in).</description>
			<examples><![CDATA[<!--- Get all errors related to the email address of the user object --->
<cfset errors = user.errorsOn("emailAddress")>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Specify the property name to return errors for here.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>If you want to return only errors on the above property set with a specific error name you can specify it here.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="errorsOnBase">
			<returntype>array</returntype>
			<description>Returns an array of all errors associated with the object as a whole (not related to any specific property).</description>
			<examples><![CDATA[<!--- Get all general type errors for the user object --->
<cfset errors = user.errorsOnBase()>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specify an error name here to only return errors for that error name.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="excerpt">
			<returntype>string</returntype>
			<description>Extracts an excerpt from text that matches the first instance of a given phrase.</description>
			<examples><![CDATA[#excerpt(text="ColdFusion Wheels is a Rails-like MVC framework for Adobe ColdFusion and Railo", phrase="framework", radius=5)#
-> ... MVC framework for ...]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to extract an excerpt from.</description>
						</argument>
					
						<argument name="phrase">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The phrase to extract.</description>
						</argument>
					
						<argument name="radius">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>100</defaultvalue>
							<description>Number of characters to extract surrounding the phrase.</description>
						</argument>
					
						<argument name="excerptString">
							<type>string</type>
							<required>0</required>
							<defaultvalue>...</defaultvalue>
							<description>String to replace first and/or last characters with.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="exists">
			<returntype>boolean</returntype>
			<description>Checks if a record exists in the table. You can pass in either a primary key value to the `key` argument or a string to the `where` argument.</description>
			<examples><![CDATA[<!--- Checking if Joe exists in the database --->
<cfset result = model("user").exists(where="firstName='Joe'")>

<!--- Checking if a specific user exists based on a primary key valued passed in through the URL/form in an if statement --->
<cfif model("user").exists(keyparams.key)>
	<!--- Do something... --->
</cfif>

<!--- If you have a `belongsTo` association setup from `comment` to `post`, you can do a scoped call. (The `hasPost` method below will call `model("post").exists(comment.postId)` internally.) --->
<cfset comment = model("comment").findByKey(params.commentId)>
<cfset commentHasAPost = comment.hasPost()>

<!--- If you have a `hasOne` association setup from `user` to `profile`, you can do a scoped call. (The `hasProfile` method below will call `model("profile").exists(where="userId=#user.id#")` internally.) --->
<cfset user = model("user").findByKey(params.userId)>
<cfset userHasProfile = user.hasProfile()>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `hasComments` method below will call `model("comment").exists(where="postid=#post.id#")` internally.) --->
<cfset post = model("post").findByKey(params.postId)>
<cfset postHasComments = post.hasComments()>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Primary key value(s) of the record to fetch. Separate with comma if passing in multiple primary key values. Accepts a string, list, or a numeric value.</description>
						</argument>
					
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="fileField">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a file field form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Provide a `label` and the required `objectName` and `property` --->
<cfoutput>
    #fileField(label="Photo", objectName="photo", property="imageFile")#
</cfoutput>

<!--- Display fields for photos provided by the `screenshots` association and nested properties --->
<fieldset>
	<legend>Screenshots</legend>
	<cfloop from="1" to="#ArrayLen(site.screenshots)#" index="i">
		#fileField(label="File ##i#", objectName="site", association="screenshots", position=i, property="file")#
		#textField(label="Caption ##i#", objectName="site", association="screenshots", position=i, property="caption")#
	</cfloop>
</fieldset>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="fileFieldTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a file form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic usage usually involves a `label`, `name`, and `value` --->
<cfoutput>
    #fileFieldTag(label="Photo", name="photo", value=params.photo)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="filterChain">
			<returntype>array</returntype>
			<description>Returns an array of all the filters set on this controller in the order in which they will be executed.</description>
			<examples><![CDATA[<!--- Get filter chain, remove the first item, and set it back --->
<cfset myFilterChain = filterChain()>
<cfset ArrayDeleteAt(myFilterChain, 1)>
<cfset setFilterChain(myFilterChain)>]]></examples>
			<arguments>
				
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue>all</defaultvalue>
							<description>Use this argument to return only `before` or `after` filters.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="filters">
			<returntype>void</returntype>
			<description>Tells Wheels to run a function before an action is run or after an action has been run. You can also specify multiple functions and actions.</description>
			<examples><![CDATA[<!--- Always execute `restrictAccess` before all actions in this controller --->
<cfset filters("restrictAccess")>

<!--- Always execute `isLoggedIn` and `checkIPAddress` (in that order) before all actions in this controller except the `home` and `login` actions --->
<cfset filters(through="isLoggedIn,checkIPAddress", except="home,login")>]]></examples>
			<arguments>
				
						<argument name="through">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Function(s) to execute before or after the action(s).</description>
						</argument>
					
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue>before</defaultvalue>
							<description>Whether to run the function(s) before or after the action(s).</description>
						</argument>
					
						<argument name="only">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass in a list of action names (or one action name) to tell Wheels that the filter function(s) should only be run on these actions.</description>
						</argument>
					
						<argument name="except">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass in a list of action names (or one action name) to tell Wheels that the filter function(s) should be run on all actions except the specified ones.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="findAll">
			<returntype>any</returntype>
			<description>Returns records from the database table mapped to this model according to the arguments passed in. (Use the `where` argument to decide which records to get, use the `order` argument to set in what order those records should be returned, and so on). The records will be returned as either a `cfquery` result set or an array of objects (depending on what the `returnAs` argument is set to). Instead of using the `where` argument, you can create cleaner code by making use of a concept called dynamic finders.</description>
			<examples><![CDATA[<!--- Getting only 5 users and ordering them randomly --->
<cfset fiveRandomUsers = model("user").findAll(maxRows=5, order="random")>

<!--- Including an association (which in this case needs to be setup as a `belongsTo` association to `author` on the `article` model first)  --->
<cfset articles = model("article").findAll(where="published=1", order="createdAt DESC", include="author")>

<!--- Similar to the above but using the association in the opposite direction (which needs to be setup as a `hasMany` association to `article` on the `author` model) --->
<cfset bobsArticles = model("author").findAll(where="firstName='Bob'", include="articles")>

<!--- Using pagination (getting records 26-50 in this case) and a more complex way to include associations (a song `belongsTo` an album, which in turn `belongsTo` an artist) --->
<cfset songs = model("song").findAll(include="album(artist)", page=2, perPage=25)>

<!--- Using a dynamic finder to get all books released a certain year. Same as calling model("book").findOne(where="releaseYear=#params.year#") --->
<cfset books = model("book").findAllByReleaseYear(params.year)>

<!--- Getting all books of a certain type from a specific year by using a dynamic finder. Same as calling model("book").findAll(where="releaseYear=#params.year# AND type='#params.type#'") --->
<cfset books = model("book").findAllByReleaseYearAndType("#params.year#,#params.type#")>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `comments` method below will call `model("comment").findAll(where="postId=#post.id#")` internally) --->
<cfset post = model("post").findByKey(params.postId)>
<cfset comments = post.comments()>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Maps to the `ORDER BY` clause of the query. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="group">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Maps to the `GROUP BY` clause of the query. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="select">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Determines how the `SELECT` clause for the query used to return data will look.	You can pass in a list of the properties (which map to columns) that you want returned from your table(s). If you don&apos;t set this argument at all, Wheels will select all properties from your table(s). If you specify a table name (e.g. `users.email`) or alias a column (e.g. `fn AS firstName`) in the list, then the entire list will be passed through unchanged and used in the `SELECT` clause of the query. By default, all column names in tables `JOIN`ed via the `include` argument will be prepended with the singular version of the included table name.</description>
						</argument>
					
						<argument name="distinct">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to add the `DISTINCT` keyword to your `SELECT` clause. Wheels will, when necessary, add this automatically (when using pagination and a `hasMany` association is used in the `include` argument, to name one example).</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="maxRows">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>-1</defaultvalue>
							<description>Maximum number of records to retrieve. Passed on to the `maxRows` `cfquery` attribute. The default, `-1`, means that all records will be retrieved.</description>
						</argument>
					
						<argument name="page">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>If you want to paginate records, you can do so by specifying a page number here. For example, getting records 11-20 would be page number 2 when `perPage` is kept at the default setting (10 records per page). The default, `0`, means that records won&apos;t be paginated and that the `perPage`, `count`, and `handle` arguments will be ignored.</description>
						</argument>
					
						<argument name="perPage">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>10</defaultvalue>
							<description>When using pagination, you can specify how many records you want to fetch per page here. This argument is only used when the `page` argument has been passed in.</description>
						</argument>
					
						<argument name="count">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>When using pagination and you know in advance how many records you want to paginate through, you can pass in that value here. Doing so will prevent Wheels from running a `COUNT` query to get this value. This argument is only used when the `page` argument has been passed in.</description>
						</argument>
					
						<argument name="handle">
							<type>string</type>
							<required>0</required>
							<defaultvalue>query</defaultvalue>
							<description>Handle to use for the query in pagination. This is useful when you&apos;re paginating multiple queries and need to reference them in the @paginationLinks function, for example. This argument is only used when the `page` argument has been passed in.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>If you want to cache the query, you can do so by specifying the number of minutes you want to cache the query for here. If you set it to `true`, the default cache time will be used (60 minutes).</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="returnAs">
							<type>string</type>
							<required>0</required>
							<defaultvalue>query</defaultvalue>
							<description>Set this to `objects` to return an array of objects. Set this to `query` to return a query result set.</description>
						</argument>
					
						<argument name="returnIncluded">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>When `returnAs` is set to `objects`, you can set this argument to `false` to prevent returning objects fetched from associations specified in the `include` argument. This is useful when you only need to include associations for use in the `WHERE` clause only and want to avoid the performance hit that comes with object creation.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>You can set this argument to `false` to prevent running the execution of callbacks for a method call.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="findByKey">
			<returntype>any</returntype>
			<description>Fetches the requested record by primary key and returns it as an object. Returns `false` if no record is found. You can override this behavior to return a `cfquery` result set instead, similar to what&apos;s described in the documentation for @findOne.</description>
			<examples><![CDATA[<!--- Getting the author with the primary key value `99` as an object --->
<cfset auth = model("author").findByKey(99)>

<!--- Getting an author based on a form/URL value and then checking if it was found --->
<cfset auth = model("author").findByKey(params.key)>
<cfif NOT IsObject(auth)>
	<cfset flashInsert(message="Author #params.key# was not found")>
	<cfset redirectTo(back=true)>
</cfif>

<!--- If you have a `belongsTo` association setup from `comment` to `post`, you can do a scoped call. (The `post` method below will call `model("post").findByKey(comment.postId)` internally) --->
<cfset comment = model("comment").findByKey(params.commentId)>
<cfset post = comment.post()>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Primary key value(s) of the record to fetch. Separate with comma if passing in multiple primary key values. Accepts a string, list, or a numeric value.</description>
						</argument>
					
						<argument name="select">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Determines how the `SELECT` clause for the query used to return data will look.	You can pass in a list of the properties (which map to columns) that you want returned from your table(s). If you don&apos;t set this argument at all, Wheels will select all properties from your table(s). If you specify a table name (e.g. `users.email`) or alias a column (e.g. `fn AS firstName`) in the list, then the entire list will be passed through unchanged and used in the `SELECT` clause of the query. By default, all column names in tables `JOIN`ed via the `include` argument will be prepended with the singular version of the included table name.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>If you want to cache the query, you can do so by specifying the number of minutes you want to cache the query for here. If you set it to `true`, the default cache time will be used (60 minutes).</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="returnAs">
							<type>string</type>
							<required>0</required>
							<defaultvalue>object</defaultvalue>
							<description>Set this to `query` to return as a single-row query result set. Set this to `object` to return as an object.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="findOne">
			<returntype>any</returntype>
			<description>Fetches the first record found based on the `WHERE` and `ORDER BY` clauses. With the default settings (i.e. the `returnAs` argument set to `object`), a model object will be returned if the record is found and the boolean value `false` if not. Instead of using the `where` argument, you can create cleaner code by making use of a concept called dynamic finders.</description>
			<examples><![CDATA[<!--- Getting the most recent order as an object from the database --->
<cfset order = model("order").findOne(order="datePurchased DESC")>

<!--- Using a dynamic finder to get the first person with the last name `Smith`. Same as calling `model("user").findOne(where"lastName='Smith'")` --->
<cfset person = model("user").findOneByLastName("Smith")>

<!--- Getting a specific user using a dynamic finder. Same as calling `model("user").findOne(where"email='someone@somewhere.com' AND password='mypass'")` --->
<cfset user = model("user").findOneByEmailAndPassword("someone@somewhere.com,mypass")>

<!--- If you have a `hasOne` association setup from `user` to `profile`, you can do a scoped call. (The `profile` method below will call `model("profile").findOne(where="userId=#user.id#")` internally) --->
<cfset user = model("user").findByKey(params.userId)>
<cfset profile = user.profile()>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `findOneComment` method below will call `model("comment").findOne(where="postId=#post.id#")` internally) --->
<cfset post = model("post").findByKey(params.postId)>
<cfset comment = post.findOneComment(where="text='I Love Wheels!'")>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Maps to the `ORDER BY` clause of the query. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="select">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Determines how the `SELECT` clause for the query used to return data will look.	You can pass in a list of the properties (which map to columns) that you want returned from your table(s). If you don&apos;t set this argument at all, Wheels will select all properties from your table(s). If you specify a table name (e.g. `users.email`) or alias a column (e.g. `fn AS firstName`) in the list, then the entire list will be passed through unchanged and used in the `SELECT` clause of the query. By default, all column names in tables `JOIN`ed via the `include` argument will be prepended with the singular version of the included table name.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>If you want to cache the query, you can do so by specifying the number of minutes you want to cache the query for here. If you set it to `true`, the default cache time will be used (60 minutes).</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="returnAs">
							<type>string</type>
							<required>0</required>
							<defaultvalue>object</defaultvalue>
							<description>Set this to `query` to return as a single-row query result set. Set this to `object` to return as an object.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="flash">
			<returntype>any</returntype>
			<description>Returns the value of a specific key in the Flash (or the entire Flash as a struct if no key is passed in).</description>
			<examples><![CDATA[<!--- Display "message" item in flash --->
<cfoutput>
	<cfif flashKeyExists("message")>
		<p class="message">
			#flash("message")#
		</p>
	</cfif>
</cfoutput>

<!--- Display all flash items --->
<cfoutput>
	<cfset allFlash = flash()>
	<cfloop list="#StructKeyList(allFlash)#" index="flashItem">
		<p class="#flashItem#">
			#flash(flashItem)#
		</p>
	</cfloop>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The key to get the value for.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="flashClear">
			<returntype>void</returntype>
			<description>Deletes everything from the Flash.</description>
			<examples><![CDATA[<cfset flashClear()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="flashCount">
			<returntype>numeric</returntype>
			<description>Returns how many keys exist in the Flash.</description>
			<examples><![CDATA[<cfif flashCount() gt 0>
	do something...
</cfif>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="flashDelete">
			<returntype>boolean</returntype>
			<description>Deletes a specific key from the Flash.</description>
			<examples><![CDATA[<cfset flashDelete(key="errorMessage")>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The key to delete.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="flashInsert">
			<returntype>void</returntype>
			<description>Inserts a new key/value into the Flash.</description>
			<examples><![CDATA[<cfset flashInsert(msg="It Worked!")>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="flashIsEmpty">
			<returntype>boolean</returntype>
			<description>Returns whether or not the Flash is empty.</description>
			<examples><![CDATA[<cfif not flashIsEmpty()>
	<div id="messages">
		<cfset allFlash = flash()>
		<cfloop list="#StructKeyList(allFlash)#" index="flashItem">
			<p class="#flashItem#">
				#flash(flashItem)#
			</p>
		</cfloop>
	</div>
</cfif>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="flashKeep">
			<returntype>void</returntype>
			<description>Make the entire Flash or specific key in it stick around for one more request.</description>
			<examples><![CDATA[<!--- Keep the entire Flash for the next request --->
<cfset flashKeep()>

<!--- Keep the "error" key in the Flash for the next request --->
<cfset flashKeep("error")>

<!--- Keep both the "error" and "success" keys in the Flash for the next request --->
<cfset flashKeep("error,success")>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A key or list of keys to flag for keeping. This argument is also aliased as `keys`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="flashKeyExists">
			<returntype>boolean</returntype>
			<description>Checks if a specific key exists in the Flash.</description>
			<examples><![CDATA[<cfif flashKeyExists("error")>
	<cfoutput>
		<p>#flash("error")#</p>
	</cfoutput>
</cfif>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The key to check if it exists.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="flashMessages">
			<returntype>string</returntype>
			<description>Displays a marked-up listing of messages that exists in the Flash.</description>
			<examples><![CDATA[<!--- In the controller action --->
<cfset flashInsert(success="Your post was successfully submitted.")>
<cfset flashInsert(alert="Don't forget to tweet about this post!")>
<cfset flashInsert(error="This is an error message.")>

<!--- In the layout or view --->
<cfoutput>
	#flashMessages()#
</cfoutput>
<!---
	Generates this (sorted alphabetically):
	<div class="flashMessages">
		<p class="alertMessage">
			Don't forget to tweet about this post!
		</p>
		<p class="errorMessage">
			This is an error message.
		</p>
		<p class="successMessage">
			Your post was successfully submitted.
		</p>
	</div>
--->

<!--- Only show the "success" key in the view --->
<cfoutput>
	#flashMessages(key="success")#
</cfoutput>
<!---
	Generates this:
	<div class="flashMessage">
		<p class="successMessage">
			Your post was successfully submitted.
		</p>
	</div>
--->

<!--- Show only the "success" and "alert" keys in the view, in that order --->
<cfoutput>
	#flashMessages(keys="success,alert")#
</cfoutput>
<!---
	Generates this (sorted alphabetically):
	<div class="flashMessages">
		<p class="successMessage">
			Your post was successfully submitted.
		</p>
		<p class="alertMessage">
			Don't forget to tweet about this post!
		</p>
	</div>
--->]]></examples>
			<arguments>
				
						<argument name="keys">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The key (or list of keys) to show the value for. You can also use the `key` argument instead for better readability when accessing a single key.</description>
						</argument>
					
						<argument name="class">
							<type>string</type>
							<required>0</required>
							<defaultvalue>flashMessages</defaultvalue>
							<description>HTML `class` to set on the `div` element that contains the messages.</description>
						</argument>
					
						<argument name="includeEmptyContainer">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Includes the DIV container even if the flash is empty.</description>
						</argument>
					
						<argument name="lowerCaseDynamicClassValues">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Outputs all class attribute values in lower case (except the main one).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="get">
			<returntype>any</returntype>
			<description>Returns the current setting for the supplied Wheels setting or the current default for the supplied Wheels function argument.</description>
			<examples><![CDATA[<!--- Get the current value for the `tableNamePrefix` Wheels setting --->
<cfset setting = get("tableNamePrefix")>

<!--- Get the default for the `message` argument of the `validatesConfirmationOf` method  --->
<cfset setting = get(functionName="validatesConfirmationOf", name="message")>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Variable name to get setting for.</description>
						</argument>
					
						<argument name="functionName">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Function name to get setting for.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="getTableNamePrefix">
			<returntype>string</returntype>
			<description>Returns the table name prefix set for the table.</description>
			<examples><![CDATA[<!--- Get the table name prefix for this user when running a custom query --->
<cffunction name="getDisabledUsers" returntype="query">
	<cfset var loc = {}>
	<cfquery datasource="#get('dataSourceName')#" name="loc.disabledUsers">
		SELECT
			*
		FROM
			#this.getTableNamePrefix()#users
		WHERE
			disabled = 1
	</cfquery>
	<cfreturn loc.disabledUsers>
</cffunction>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="hasChanged">
			<returntype>boolean</returntype>
			<description>Returns `true` if the specified property (or any if none was passed in) has been changed but not yet saved to the database. Will also return `true` if the object is new and no record for it exists in the database.</description>
			<examples><![CDATA[<!--- Get a member object and change the `email` property on it --->
<cfset member = model("member").findByKey(params.memberId)>
<cfset member.email = params.newEmail>

<!--- Check if the `email` property has changed --->
<cfif member.hasChanged("email")>
	<!--- Do something... --->
</cfif>

<!--- The above can also be done using a dynamic function like this --->
<cfif member.emailHasChanged()>
	<!--- Do something... --->
</cfif>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property to check for change.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hasErrors">
			<returntype>boolean</returntype>
			<description>Returns `true` if the object has any errors. You can also limit to only check a specific property or name for errors.</description>
			<examples><![CDATA[<!--- Check if the post object has any errors set on it --->
<cfif post.hasErrors()>
	<!--- Send user to a form to correct the errors... --->
</cfif>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property to check if there are any errors set on.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Error name to check if there are any errors set with.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hasMany">
			<returntype>void</returntype>
			<description>Sets up a `hasMany` association between this model and the specified one.</description>
			<examples><![CDATA[<!---
	Example1: Specify that instances of this model has many comments.
	(The table for the associated model, not the current, should have the foreign key set on it.)
--->
<cfset hasMany("comments")>

<!---
	Example 2: Specify that this model (let's call it `reader` in this case) has many subscriptions and setup a shortcut to the `publication` model.
	(Useful when dealing with many-to-many relationships.)
--->
<cfset hasMany(name="subscriptions", shortcut="publications")>

<!--- Example 3: Automatically delete all associated `comments` whenever this object is deleted --->
<cfset hasMany(name="comments", dependent="deleteAll")>

<!---
	Example 4: When not following Wheels naming conventions for associations, it can get complex to define how a `shortcut` works.
	In this example, we are naming our `shortcut` differently than the actual model's name.
--->
<!--- In the models/Customer.cfc `init()` method --->
<cfset hasMany(name="subscriptions", shortcut="magazines", through="publication,subscriptions")>

<!--- In the models/Subscriptions.cfc `init()` method --->
<cfset belongsTo("customer")>
<cfset belongsTo("publication")>

<!--- In the models/Publication `init()` method --->
<cfset hasMany("subscriptions")>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Gives the association a name that you refer to when working with the association (in the `include` argument to @findAll, to name one example).</description>
						</argument>
					
						<argument name="modelName">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of associated model (usually not needed if you follow Wheels conventions because the model name will be deduced from the `name` argument).</description>
						</argument>
					
						<argument name="foreignKey">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Foreign key property name (usually not needed if you follow Wheels conventions since the foreign key name will be deduced from the `name` argument).</description>
						</argument>
					
						<argument name="joinType">
							<type>string</type>
							<required>0</required>
							<defaultvalue>outer</defaultvalue>
							<description>Use to set the join type when joining associated tables. Possible values are `inner` (for `INNER JOIN`) and `outer` (for `LEFT OUTER JOIN`).</description>
						</argument>
					
						<argument name="dependent">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Defines how to handle dependent models when you delete a record from this model. Set to `delete` to instantiate associated models and call their @delete method, `deleteAll` to delete without instantiating, `nullify` to remove the foreign key, or `false` to do nothing.</description>
						</argument>
					
						<argument name="shortcut">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this argument to create an additional dynamic method that gets the object(s) from the other side of a many-to-many association.</description>
						</argument>
					
						<argument name="through">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this argument if you need to override Wheels conventions when using the `shortcut` argument. Accepts a list of two association names representing the chain from the opposite side of the many-to-many relationship to this model.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hasManyCheckBox">
			<returntype>string</returntype>
			<description>Used as a shortcut to output the proper form elements for an association. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Show check boxes for associating authors with the current book --->
<cfloop query="authors">
	#hasManyCheckBox(
		label=authors.fullName,
		objectName="book",
		association="bookAuthors",
		keys="#book.key()#,#authors.id#"
	)#
</cfloop>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the variable containing the parent object to represent with this form field.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the association set in the parent object to represent with this form field.</description>
						</argument>
					
						<argument name="keys">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Primary keys associated with this form field.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hasManyRadioButton">
			<returntype>string</returntype>
			<description>Used as a shortcut to output the proper form elements for an association. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Show radio buttons for associating a default address with the current author --->
<cfloop query="addresses">
	#hasManyRadioButton(
		label=addresses.title,
		objectName="author",
		association="authorsDefaultAddresses",
		keys="#author.key()#,#addresses.id#"
	)#
</cfloop>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the variable containing the parent object to represent with this form field.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the association set in the parent object to represent with this form field.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property in the child object to represent with this form field.</description>
						</argument>
					
						<argument name="keys">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Primary keys associated with this form field.</description>
						</argument>
					
						<argument name="tagValue">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The value of the radio button when `selected`.</description>
						</argument>
					
						<argument name="checkIfBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to check this form field as a default if there is a blank value set for the property.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hasOne">
			<returntype>void</returntype>
			<description>Sets up a `hasOne` association between this model and the specified one.</description>
			<examples><![CDATA[<!--- Specify that instances of this model has one profile. (The table for the associated model, not the current, should have the foreign key set on it.) --->
<cfset hasOne("profile")>

<!--- Same as above but setting the `joinType` to `inner`, which basically means this model should always have a record in the `profiles` table --->
<cfset hasOne(name="profile", joinType="inner")>

<!--- Automatically delete the associated `profile` whenever this object is deleted --->
<cfset hasMany(name="comments", dependent="delete")>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Gives the association a name that you refer to when working with the association (in the `include` argument to @findAll, to name one example).</description>
						</argument>
					
						<argument name="modelName">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of associated model (usually not needed if you follow Wheels conventions because the model name will be deduced from the `name` argument).</description>
						</argument>
					
						<argument name="foreignKey">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Foreign key property name (usually not needed if you follow Wheels conventions since the foreign key name will be deduced from the `name` argument).</description>
						</argument>
					
						<argument name="joinType">
							<type>string</type>
							<required>0</required>
							<defaultvalue>outer</defaultvalue>
							<description>Use to set the join type when joining associated tables. Possible values are `inner` (for `INNER JOIN`) and `outer` (for `LEFT OUTER JOIN`).</description>
						</argument>
					
						<argument name="dependent">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Defines how to handle dependent models when you delete a record from this model. Set to `delete` to instantiate associated models and call their @delete method, `deleteAll` to delete without instantiating, `nullify` to remove the foreign key, or `false` to do nothing.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hasProperty">
			<returntype>boolean</returntype>
			<description>Returns `true` if the specified property name exists on the model.</description>
			<examples><![CDATA[<!--- Get an object, set a value and then see if the property exists --->
<cfset employee = model("employee").new()>
<cfset employee.firstName = "dude">
<cfset employee.hasProperty("firstName")><!--- returns true --->

<!--- This is also a dynamic method that you could do --->
<cfset employee.hasFirstName()>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of property to inspect.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hiddenField">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a hidden field form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Provide an `objectName` and `property` --->
<cfoutput>
    #hiddenField(objectName="user", property="id")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hiddenFieldTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a hidden field form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic usage usually involves a `name` and `value` --->
<cfoutput>
    #hiddenFieldTag(name="userId", value=user.id)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="value">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value to populate in tag&apos;s `value` attribute.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="highlight">
			<returntype>string</returntype>
			<description>Highlights the phrase(s) everywhere in the text if found by wrapping it in a `span` tag.</description>
			<examples><![CDATA[#highlight(text="You searched for: Wheels", phrases="Wheels")#
-> You searched for: <span class="highlight">Wheels</span>]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Text to search.</description>
						</argument>
					
						<argument name="phrases">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>List of phrases to highlight.</description>
						</argument>
					
						<argument name="class">
							<type>string</type>
							<required>0</required>
							<defaultvalue>highlight</defaultvalue>
							<description>Class to use in `span` tags surrounding highlighted phrase(s).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hourSelectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing one select form control for the hours of the day based on the supplied `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of the function accepts a `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #hourSelectTag(name="hourOfMeeting", selected=params.hourOfMeeting)#
</cfoutput>

<!--- Show 12 hours instead of 24 --->
<cfoutput>
	#hourSelectTag(name="hourOfMeeting", selected=params.hourOfMeeting, twelveHour=true)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The hour that should be selected initially.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="twelveHour">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>whether to display the hours in 24 or 12 hour format. 12 hour format has AM/PM drop downs</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="humanize">
			<returntype>string</returntype>
			<description>Returns readable text by capitalizing and converting camel casing to multiple words.</description>
			<examples><![CDATA[<!--- Humanize a string, will result in "Wheels Is A Framework" --->
#humanize("wheelsIsAFramework")#

<!--- Humanize a string, force wheels to replace "Cfml" with "CFML" --->
#humanize("wheelsIsACFMLFramework", "CFML")#]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Text to humanize.</description>
						</argument>
					
						<argument name="except">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>a list of strings (space separated) to replace within the output.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="hyphenize">
			<returntype>string</returntype>
			<description>Converts camelCase strings to lowercase strings with hyphens as word delimiters instead. Example: `myVariable` becomes `my-variable`.</description>
			<examples><![CDATA[<!--- Outputs "my-blog-post" --->
<cfoutput>
	#hyphenize("myBlogPost")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="string">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The string to hyphenize.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="imageTag">
			<returntype>string</returntype>
			<description>Returns an `img` tag. If the image is stored in the local `images` folder, the tag will also set the `width`, `height`, and `alt` attributes for you. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Outputs an `img` tag for `images/logo.png` --->
#imageTag("logo.png")#

<!--- Outputs an `img` tag for `http://cfwheels.org/images/logo.png` --->
#imageTag("http://cfwheels.org/images/logo.png", alt="ColdFusion on Wheels")#

<!--- Outputs an `img` tag with the `class` attribute set --->
#imageTag(source="logo.png", class="logo")#]]></examples>
			<arguments>
				
						<argument name="source">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The file name of the image if it&apos;s availabe in the local file system (i.e. ColdFusion will be able to access it). Provide the full URL if the image is on a remote server.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="includeContent">
			<returntype>string</returntype>
			<description>Used to output the content for a particular section in a layout.</description>
			<examples><![CDATA[<!--- In your view template, let's say `views/blog/post.cfm --->
<cfset contentFor(head='<meta name="robots" content="noindex,nofollow" />"')>
<cfset contentFor(head='<meta name="author" content="wheelsdude@wheelsify.com"')>

<!--- In `views/layout.cfm` --->
<html>
<head>
    <title>My Site</title>
    #includeContent("head")#
</head>
<body>

<cfoutput>
#includeContent()#
</cfoutput>

</body>
</html>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue>body</defaultvalue>
							<description>Name of layout section to return content for.</description>
						</argument>
					
						<argument name="default">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>What to display as a default if the section is not defined.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="includedInObject">
			<returntype>boolean</returntype>
			<description>Used as a shortcut to check if the specified IDs are a part of the main form object. This method should only be used for `hasMany` associations.</description>
			<examples><![CDATA[<!--- Check to see if the customer is subscribed to the Swimsuit Edition. Note that the order of the `keys` argument should match the order of the `customerid` and `publicationid` columns in the `subscriptions` join table --->
<cfif not includedInObject(objectName="customer", association="subscriptions", keys="#customer.key()#,#swimsuitEdition.id#")>
	<cfset assignSalesman(customer)>
</cfif>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the variable containing the parent object to represent with this form field.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the association set in the parent object to represent with this form field.</description>
						</argument>
					
						<argument name="keys">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Primary keys associated with this form field.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="includeLayout">
			<returntype>string</returntype>
			<description>Includes the contents of another layout file. This is usually used to include a parent layout from within a child layout.</description>
			<examples><![CDATA[<!--- Make sure that the `sidebar` value is provided for the parent layout --->
<cfsavecontent variable="categoriesSidebar">
	<cfoutput>
		<ul>
			#includePartial(categories)#
		</ul>
	</cfoutput>
</cfsavecontent>
<cfset contentFor(sidebar=categoriesSidebar)>

<!--- Include parent layout at `views/layout.cfm` --->
<cfoutput>
	#includeLayout("/layout.cfm")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue>layout</defaultvalue>
							<description>Name of the layout file to include.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="includePartial">
			<returntype>string</returntype>
			<description>Includes the specified partial file in the view. Similar to using `cfinclude` but with the ability to cache the result and use Wheels-specific file look-up. By default, Wheels will look for the file in the current controller&apos;s view folder. To include a file relative from the base `views` folder, you can start the path supplied to `name` with a forward slash.</description>
			<examples><![CDATA[<cfoutput>#includePartial("login")#</cfoutput>
-> If we're in the "admin" controller, Wheels will include the file "views/admin/_login.cfm".

<cfoutput>#includePartial(partial="misc/doc", cache=30)#</cfoutput>
-> If we're in the "admin" controller, Wheels will include the file "views/admin/misc/_doc.cfm" and cache it for 30 minutes.

<cfoutput>#includePartial(partial="/shared/button")#</cfoutput>
-> Wheels will include the file "views/shared/_button.cfm".]]></examples>
			<arguments>
				
						<argument name="partial">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the partial file to be used. Prefix with a leading slash `/` if you need to build a path from the root `views` folder. Do not include the partial filename&apos;s underscore and file extension.</description>
						</argument>
					
						<argument name="group">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>If passing a query result set for the `partial` argument, use this to specify the field to group the query by. A new query will be passed into the partial template for you to iterate over.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Number of minutes to cache the content for.</description>
						</argument>
					
						<argument name="layout">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The layout to wrap the content in. Prefix with a leading slash `/` if you need to build a path from the root `views` folder. Pass `false` to not load a layout at all.</description>
						</argument>
					
						<argument name="spacer">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>HTML or string to place between partials when called using a query.</description>
						</argument>
					
						<argument name="dataFunction">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Name of controller function to load data from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="invokeWithTransaction">
			<returntype>any</returntype>
			<description>Runs the specified method within a single database transaction.</description>
			<examples><![CDATA[<!--- This is the method to be run inside a transaction --->
<cffunction name="tranferFunds" returntype="boolean" output="false">
	<cfargument name="personFrom">
	<cfargument name="personTo">
	<cfargument name="amount">
	<cfif arguments.personFrom.withdraw(arguments.amount) and arguments.personTo.deposit(arguments.amount)>
		<cfreturn true>
	<cfelse>
		<cfreturn false>
	</cfif>
</cffunction>

<cfset david = model("Person").findOneByName("David")>
<cfset mary = model("Person").findOneByName("Mary")>
<cfset invokeWithTransaction(method="transferFunds", personFrom=david, personTo=mary, amount=100)>]]></examples>
			<arguments>
				
						<argument name="method">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Model method to run.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>commit</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="isolation">
							<type>string</type>
							<required>0</required>
							<defaultvalue>read_committed</defaultvalue>
							<description>Isolation level to be passed through to the `cftransaction` tag. See your CFML engine&apos;s documentation for more details about `cftransaction`&apos;s `isolation` attribute.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="isAjax">
			<returntype>boolean</returntype>
			<description>Returns whether the page was called from JavaScript or not.</description>
			<examples><![CDATA[<cfset requestIsAjax = isAjax()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="isClass">
			<returntype>boolean</returntype>
			<description>Use this method within a model&apos;s method to check whether you are currently in a class-level object.</description>
			<examples><![CDATA[<!--- Use the passed in `id` when we're already in an instance --->
<cffunction name="memberIsAdmin">
	<cfif isClass()>
		<cfreturn this.findByKey(arguments.id).admin>
	<cfelse>
		<cfreturn this.admin>
	</cfif>
</cffunction>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="isGet">
			<returntype>boolean</returntype>
			<description>Returns whether the request was a normal `GET` request or not.</description>
			<examples><![CDATA[<cfset requestIsGet = isGet()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="isInstance">
			<returntype>boolean</returntype>
			<description>Use this method to check whether you are currently in an instance object.</description>
			<examples><![CDATA[<!--- Use the passed in `id` when we're not already in an instance --->
<cffunction name="memberIsAdmin">
	<cfif isInstance()>
		<cfreturn this.admin>
	<cfelse>
		<cfreturn this.findByKey(arguments.id).admin>
	</cfif>
</cffunction>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="isNew">
			<returntype>boolean</returntype>
			<description>Returns `true` if this object hasn&apos;t been saved yet. (In other words, no matching record exists in the database yet.) Returns `false` if a record exists.</description>
			<examples><![CDATA[<!--- Create a new object and then check if it is new (yes, this example is ridiculous. It makes more sense in the context of callbacks for example) --->
<cfset employee = model("employee").new()>
<cfif employee.isNew()>
	<!--- Do something... --->
</cfif>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="isPost">
			<returntype>boolean</returntype>
			<description>Returns whether the request came from a form `POST` submission or not.</description>
			<examples><![CDATA[<cfset requestIsPost = isPost()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="isSecure">
			<returntype>boolean</returntype>
			<description>Returns whether Wheels is communicating over a secure port.</description>
			<examples><![CDATA[<!--- Redirect non-secure connections to the secure version --->
<cfif not isSecure()>
	<cfset redirectTo(protocol="https")>
</cfif>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="javaScriptIncludeTag">
			<returntype>string</returntype>
			<description>Returns a `script` tag for a JavaScript file (or several) based on the supplied arguments.</description>
			<examples><![CDATA[<!--- view code --->
<head>
	<!--- Includes `javascripts/main.js` --->
    #javaScriptIncludeTag("main")#
	<!--- Includes `javascripts/blog.js` and `javascripts/accordion.js` --->
	#javaScriptIncludeTag("blog,accordion")#
</head>

<body>
	<!--- Will still appear in the `head` --->
	#javaScriptIncludeTag(source="tabs", head=true)#
</body>]]></examples>
			<arguments>
				
						<argument name="sources">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of one or many JavaScript files in the `javascripts` folder, minus the `.js` extension. (Can also be called with the `source` argument.)</description>
						</argument>
					
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue>text/javascript</defaultvalue>
							<description>The `type` attribute for the `script` tag.</description>
						</argument>
					
						<argument name="head">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to place the output in the `head` area of the HTML page instead of the default behavior, which is to place the output where the function is called from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="key">
			<returntype>string</returntype>
			<description>Returns the value of the primary key for the object. If you have a single primary key named `id`, then `someObject.key()` is functionally equivalent to `someObject.id`. This method is more useful when you do dynamic programming and don&apos;t know the name of the primary key or when you use composite keys (in which case it&apos;s convenient to use this method to get a list of both key values returned).</description>
			<examples><![CDATA[<!--- Get an object and then get the primary key value(s) --->
<cfset employee = model("employee").findByKey(params.key)>
<cfset val = employee.key()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="linkTo">
			<returntype>string</returntype>
			<description>Creates a link to another page in your application. Pass in the name of a `route` to use your configured routes or a `controller`/`action`/`key` combination. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[#linkTo(text="Log Out", controller="account", action="logout")#
-> <a href="/account/logout">Log Out</a>

<!--- if you're already in the `account` controller, Wheels will assume that's where you want the link to point --->
#linkTo(text="Log Out", action="logout")#
-> <a href="/account/logout">Log Out</a>

#linkTo(text="View Post", controller="blog", action="post", key=99)#
-> <a href="/blog/post/99">View Post</a>

#linkTo(text="View Settings", action="settings", params="show=all&sort=asc")#
-> <a href="/account/settings?show=all&amp;sort=asc">View Settings</a>

<!--- Given that a `userProfile` route has been configured in `config/routes.cfm` --->
#linkTo(text="Joe's Profile", route="userProfile", userName="joe")#
-> <a href="/user/joe">Joe's Profile</a>

<!--- Link to an external website --->
#linkTo(text="ColdFusion Framework", href="http://cfwheels.org/")#
-> <a href="http://cfwheels.org/">ColdFusion Framework</a>

<!--- Give the link `class` and `id` attributes --->
#linkTo(text="Delete Post", action="delete", key=99, class="delete", id="delete-99")#
-> <a class="delete" href="/blog/delete/99" id="delete-99">Delete Post</a>]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The text content of the link.</description>
						</argument>
					
						<argument name="confirm">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass a message here to cause a JavaScript confirmation dialog box to pop up containing the message.</description>
						</argument>
					
						<argument name="route">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of a route that you have configured in `config/routes.cfm`.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the controller to include in the URL.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the action to include in the URL.</description>
						</argument>
					
						<argument name="key">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Key(s) to include in the URL.</description>
						</argument>
					
						<argument name="params">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Any additional params to be set in the query string.</description>
						</argument>
					
						<argument name="anchor">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Sets an anchor name to be appended to the path.</description>
						</argument>
					
						<argument name="onlyPath">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>If `true`, returns only the relative URL (no protocol, host name or port).</description>
						</argument>
					
						<argument name="host">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current host.</description>
						</argument>
					
						<argument name="protocol">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current protocol.</description>
						</argument>
					
						<argument name="port">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>Set this to override the current port number.</description>
						</argument>
					
						<argument name="href">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass a link to an external site here if you want to bypass the Wheels routing system altogether and link to an external URL.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="mailTo">
			<returntype>string</returntype>
			<description>Creates a `mailto` link tag to the specified email address, which is also used as the name of the link unless name is specified.</description>
			<examples><![CDATA[#mailTo(emailAddress="webmaster@yourdomain.com", name="Contact our Webmaster")#
-> <a href="mailto:webmaster@yourdomain.com">Contact our Webmaster</a>]]></examples>
			<arguments>
				
						<argument name="emailAddress">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The email address to link to.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A string to use as the link text (&quot;Joe&quot; or &quot;Support Department&quot;, for example).</description>
						</argument>
					
						<argument name="encode">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Pass `true` here to encode the email address, making it harder for bots to harvest it for example.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="maximum">
			<returntype>any</returntype>
			<description>Calculates the maximum value for a given property. Uses the SQL function `MAX`. If no records can be found to perform the calculation on you can use the `ifNull` argument to decide what should be returned.</description>
			<examples><![CDATA[<!--- Get the amount of the highest salary for all employees --->
<cfset highestSalary = model("employee").maximum("salary")>

<!--- Get the amount of the highest salary for employees in a given department --->
<cfset highestSalary = model("employee").maximum(property="salary", where="departmentId=#params.key#")>

<!--- Make sure a numeric value is always returned, even if no records are found to calculate the maximum for --->
<cfset highestSalary = model("employee").maximum(property="salary", where="salary > #params.minSalary#", ifNull=0)>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property to get the highest value for (must be a property of a numeric data type).</description>
						</argument>
					
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="ifNull">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The value returned if no records are found. Common usage is to set this to `0` to make sure a numeric value is always returned instead of a blank string.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="mimeTypes">
			<returntype>string</returntype>
			<description>Returns an associated MIME type based on a file extension.</description>
			<examples><![CDATA[<!--- Get the internally-stored MIME type for `xls` --->
<cfset mimeType = mimeTypes("xls")>

<!--- Get the internally-stored MIME type for a dynamic value. Fall back to a MIME type of `text/plain` if it's not found --->
<cfset mimeType = mimeTypes(extension=params.type, fallback="text/plain")>]]></examples>
			<arguments>
				
						<argument name="extension">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The extension to get the MIME type for.</description>
						</argument>
					
						<argument name="fallback">
							<type>string</type>
							<required>0</required>
							<defaultvalue>application/octet-stream</defaultvalue>
							<description>the fallback MIME type to return.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="minimum">
			<returntype>any</returntype>
			<description>Calculates the minimum value for a given property. Uses the SQL function `MIN`. If no records can be found to perform the calculation on you can use the `ifNull` argument to decide what should be returned.</description>
			<examples><![CDATA[<!--- Get the amount of the lowest salary for all employees --->
<cfset lowestSalary = model("employee").minimum("salary")>

<!--- Get the amount of the lowest salary for employees in a given department --->
<cfset lowestSalary = model("employee").minimum(property="salary", where="departmentId=#params.id#")>

<!--- Make sure a numeric amount is always returned, even when there were no records analyzed by the query --->
<cfset lowestSalary = model("employee").minimum(property="salary", where="salary BETWEEN #params.min# AND #params.max#", ifNull=0)>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property to get the lowest value for (must be a property of a numeric data type).</description>
						</argument>
					
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="ifNull">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The value returned if no records are found. Common usage is to set this to `0` to make sure a numeric value is always returned instead of a blank string.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="minuteSelectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing one select form control for the minutes of an hour based on the supplied `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of the function accepts a `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #minuteSelectTag(name="minuteOfMeeting", value=params.minuteOfMeeting)#
</cfoutput>

<!--- Only show 15-minute intervals --->
<cfoutput>
	#minuteSelectTag(name="minuteOfMeeting", value=params.minuteOfMeeting, minuteStep=15)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The minute that should be selected initially.</description>
						</argument>
					
						<argument name="minuteStep">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Pass in `10` to only show minute 10, 20, 30, etc.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="model">
			<returntype>any</returntype>
			<description>Returns a reference to the requested model so that class level methods can be called on it.</description>
			<examples><![CDATA[<!--- The `model("author")` part of the code below gets a reference to the model from the application scope, and then the `findByKey` class level method is called on it --->
<cfset authorObject = model("author").findByKey(1)>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the model to get a reference to.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="monthSelectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a select form control for the months of the year based on the supplied `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of the function accepts a `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #monthSelectTag(name="monthOfBirthday", selected=params.monthOfBirthday)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The month that should be selected initially.</description>
						</argument>
					
						<argument name="monthDisplay">
							<type>string</type>
							<required>0</required>
							<defaultvalue>names</defaultvalue>
							<description>Pass in `names`, `numbers`, or `abbreviations` to control display.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="nestedProperties">
			<returntype>void</returntype>
			<description>Allows for nested objects, structs, and arrays to be set from params and other generated data.</description>
			<examples><![CDATA[<!--- In `models/User.cfc`, allow for `groupEntitlements` to be saved and deleted through the `user` object --->
<cffunction name="init">
	<cfset hasMany("groupEntitlements")>
	<cfset nestedProperties(association="groupEntitlements", allowDelete=true)>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The association (or list of associations) you want to allow to be set through the params. This argument is also aliased as `associations`.</description>
						</argument>
					
						<argument name="autoSave">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether to save the association(s) when the parent object is saved.</description>
						</argument>
					
						<argument name="allowDelete">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set `allowDelete` to `true` to tell Wheels to look for the property `_delete` in your model. If present and set to a value that evaluates to `true`, the model will be deleted when saving the parent.</description>
						</argument>
					
						<argument name="sortProperty">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set `sortProperty` to a property on the object that you would like to sort by. The property should be numeric, should start with 1, and should be consecutive. Only valid with `hasMany` associations.</description>
						</argument>
					
						<argument name="rejectIfBlank">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A list of properties that should not be blank. If any of the properties are blank, any CRUD operations will be rejected.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="new">
			<returntype>any</returntype>
			<description>Creates a new object based on supplied properties and returns it. The object is not saved to the database; it only exists in memory. Property names and values can be passed in either using named arguments or as a struct to the `properties` argument.</description>
			<examples><![CDATA[<!--- Create a new author in memory (not saved to the database) --->
<cfset newAuthor = model("author").new()>

<!--- Create a new author based on properties in a struct --->
<cfset newAuthor = model("author").new(params.authorStruct)>

<!--- Create a new author by passing in named arguments --->
<cfset newAuthor = model("author").new(firstName="John", lastName="Doe")>

<!--- If you have a `hasOne` or `hasMany` association setup from `customer` to `order`, you can do a scoped call. (The `newOrder` method below will call `model("order").new(customerId=aCustomer.id)` internally.) --->
<cfset aCustomer = model("customer").findByKey(params.customerId)>
<cfset anOrder = aCustomer.newOrder(shipping=params.shipping)>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="obfuscateParam">
			<returntype>string</returntype>
			<description>Obfuscates a value. Typically used for hiding primary key values when passed along in the URL.</description>
			<examples><![CDATA[<!--- Obfuscate the primary key value `99` --->
<cfset newValue = obfuscateParam(99)>]]></examples>
			<arguments>
				
						<argument name="param">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Value to obfuscate.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="onlyProvides">
			<returntype>void</returntype>
			<description>Use this in an individual controller action to define which formats the action will respond with. This can be used to define provides behavior in individual actions or to override a global setting set with @provides in the controller&apos;s `init()`.</description>
			<examples><![CDATA[<!--- In your controller --->
<cffunction name="init">
	<cfset provides("html,xml,json")>
</cffunction>

<!--- This action will provide the formats defined in `init()` above --->
<cffunction name="list">
	<cfset products = model("product").findAll()>
	<cfset renderWith(products)>
</cffunction>

<!--- This action will only provide the `html` type and will ignore what was defined in the call to `provides()` in the `init()` method above --->
<cffunction name="new">
	<cfset onlyProvides("html")>
	<cfset model("product").new()>
</cffunction>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="pagination">
			<returntype>struct</returntype>
			<description>Returns a struct with information about the specificed paginated query. The keys that will be included in the struct are `currentPage`, `totalPages` and `totalRecords`.</description>
			<examples><![CDATA[<cfparam name="params.page" default="1">
<cfset allAuthors = model("author").findAll(page=params.page, perPage=25, order="lastName", handle="authorsData")>
<cfset paginationData = pagination("authorsData")>]]></examples>
			<arguments>
				
						<argument name="handle">
							<type>string</type>
							<required>0</required>
							<defaultvalue>query</defaultvalue>
							<description>The handle given to the query to return pagination information for.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="paginationLinks">
			<returntype>string</returntype>
			<description>Builds and returns a string containing links to pages based on a paginated query. Uses @linkTo internally to build the link, so you need to pass in a `route` name or a `controller`/`action`/`key` combination. All other @linkTo arguments can be supplied as well, in which case they are passed through directly to @linkTo. If you have paginated more than one query in the controller, you can use the `handle` argument to reference them. (Don&apos;t forget to pass in a `handle` to the @findAll function in your controller first.)</description>
			<examples><![CDATA[<!--- Example 1: List authors page by page, 25 at a time --->
<!--- Controller code --->
<cfparam name="params.page" default="1">
<cfset allAuthors = model("author").findAll(page=params.page, perPage=25, order="lastName")>

<!--- View code --->
<ul>
    <cfoutput query="allAuthors">
        <li>#firstName# #lastName#</li>
    </cfoutput>
</ul>
<cfoutput>#paginationLinks(action="listAuthors")#</cfoutput>

<!--- Example 2: Using the same model call above, show all authors with a window size of 5 --->
<!--- View code --->
<cfoutput>#paginationLinks(action="listAuthors", windowSize=5)#</cfoutput>

<!--- Example 3: If more than one paginated query is being run, then you need to reference the correct `handle` in the view --->
<!--- Controller code --->
<cfset allAuthors = model("author").findAll(handle="authQuery", page=5, order="id")>

<!--- View code --->
<ul>
    <cfoutput>#paginationLinks(action="listAuthors", handle="authQuery", prependToLink="<li>", appendToLink="</li>")#</cfoutput>
</ul>

<!--- Example 4: Call to `paginationLinks` using routes --->
<!--- Route setup in config/routes.cfm --->
<cfset addRoute(name="paginatedCommentListing", pattern="blog/[year]/[month]/[day]/[page]", controller="theBlog", action="stats")>
<cfset addRoute(name="commentListing", pattern="blog/[year]/[month]/[day]",  controller="theBlog", action="stats")>

<!--- Ccontroller code --->
<cfparam name="params.page" default="1">
<cfset comments = model("comment").findAll(page=params.page, order="createdAt")>

<!--- View code --->
<ul>
    <cfoutput>#paginationLinks(route="paginatedCommentListing", year=2009, month="feb", day=10)#</cfoutput>
</ul>]]></examples>
			<arguments>
				
						<argument name="windowSize">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2</defaultvalue>
							<description>The number of page links to show around the current page.</description>
						</argument>
					
						<argument name="alwaysShowAnchors">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether or not links to the first and last page should always be displayed.</description>
						</argument>
					
						<argument name="anchorDivider">
							<type>string</type>
							<required>0</required>
							<defaultvalue> ... </defaultvalue>
							<description>String to place next to the anchors on either side of the list.</description>
						</argument>
					
						<argument name="linkToCurrentPage">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not the current page should be linked to.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String or HTML to be prepended before result.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String or HTML to be appended after result.</description>
						</argument>
					
						<argument name="prependToPage">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String or HTML to be prepended before each page number.</description>
						</argument>
					
						<argument name="prependOnFirst">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether or not to prepend the `prependToPage` string on the first page in the list.</description>
						</argument>
					
						<argument name="prependOnAnchor">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether or not to prepend the `prependToPage` string on the anchors.</description>
						</argument>
					
						<argument name="appendToPage">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String or HTML to be appended after each page number.</description>
						</argument>
					
						<argument name="appendOnLast">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether or not to append the `appendToPage` string on the last page in the list.</description>
						</argument>
					
						<argument name="appendOnAnchor">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Whether or not to append the `appendToPage` string on the anchors.</description>
						</argument>
					
						<argument name="classForCurrent">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Class name for the current page number (if `linkToCurrentPage` is `true`, the class name will go on the `a` element. If not, a `span` element will be used).</description>
						</argument>
					
						<argument name="handle">
							<type>string</type>
							<required>0</required>
							<defaultvalue>query</defaultvalue>
							<description>The handle given to the query that the pagination links should be displayed for.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue>page</defaultvalue>
							<description>The name of the param that holds the current page number.</description>
						</argument>
					
						<argument name="showSinglePage">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Will show a single page when set to `true`. (The default behavior is to return an empty string when there is only one page in the pagination).</description>
						</argument>
					
						<argument name="pageNumberAsParam">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Decides whether to link the page number as a param or as part of a route. (The default behavior is `true`).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="passwordField">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a password field form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Provide a `label` and the required `objectName` and `property` --->
<cfoutput>
    #passwordField(label="Password", objectName="user", property="password")#
</cfoutput>

<!--- Display fields for passwords provided by the `passwords` association and nested properties --->
<fieldset>
	<legend>Passwords</legend>
	<cfloop from="1" to="#ArrayLen(user.passwords)#" index="i">
		#passwordField(label="Password ##i#", objectName="user", association="passwords", position=i, property="password")#
	</cfloop>
</fieldset>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="passwordFieldTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a password field form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic usage usually involves a `label`, `name`, and `value` --->
<cfoutput>
    #passwordFieldTag(label="Password", name="password", value=params.password)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="value">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value to populate in tag&apos;s `value` attribute.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="pluginNames">
			<returntype>string</returntype>
			<description>Returns a list of all installed plugins&apos; names.</description>
			<examples><![CDATA[<!--- Check if the Scaffold plugin is installed --->
<cfif ListFindNoCase("scaffold", pluginNames())>
	<!--- do something cool --->
</cfif>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="pluralize">
			<returntype>string</returntype>
			<description>Returns the plural form of the passed in word. Can also pluralize a word based on a value passed to the `count` argument.</description>
			<examples><![CDATA[<!--- Pluralize a word, will result in "people" --->
#pluralize("person")#

<!--- Pluralize based on the count passed in --->
Your search returned #pluralize(word="person", count=users.RecordCount)#]]></examples>
			<arguments>
				
						<argument name="word">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The word to pluralize.</description>
						</argument>
					
						<argument name="count">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>-1</defaultvalue>
							<description>Pluralization will occur when this value is not `1`.</description>
						</argument>
					
						<argument name="returnCount">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Will return `count` prepended to the pluralization when `true` and `count` is not `-1`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="primaryKey">
			<returntype>string</returntype>
			<description>Returns the name of the primary key for this model&apos;s table. This is determined through database introspection. If composite primary keys have been used, they will both be returned in a list. This function is also aliased as `primaryKeys()`.</description>
			<examples><![CDATA[<!--- Get the name of the primary key of the table mapped to the `employee` model (which is the `employees` table by default) --->
<cfset keyName = model("employee").primaryKey()>]]></examples>
			<arguments>
				
						<argument name="position">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>If you are accessing a composite primary key, pass the position of a single key to fetch.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="primaryKeys">
			<returntype>string</returntype>
			<description>Alias for @primaryKey. Use this for better readability when you&apos;re accessing multiple primary keys.</description>
			<examples><![CDATA[<!--- Get a list of the names of the primary keys in the table mapped to the `employee` model (which is the `employees` table by default) --->
<cfset keyNames = model("employee").primaryKeys()>]]></examples>
			<arguments>
				
						<argument name="position">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>If you are accessing a composite primary key, pass the position of a single key to fetch.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="properties">
			<returntype>struct</returntype>
			<description>Returns a structure of all the properties with their names as keys and the values of the property as values.</description>
			<examples><![CDATA[<!--- Get a structure of all the properties for an object --->
<cfset user = model("user").findByKey(1)>
<cfset props = user.properties()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="property">
			<returntype>void</returntype>
			<description>Use this method to map an object property to either a table column with a different name than the property or to a SQL expression. You only need to use this method when you want to override the default object relational mapping that Wheels performs.</description>
			<examples><![CDATA[<!--- Tell Wheels that when we are referring to `firstName` in the CFML code, it should translate to the `STR_USERS_FNAME` column when interacting with the database instead of the default (which would be the `firstname` column) --->
<cfset property(name="firstName", column="STR_USERS_FNAME")>

<!--- Tell Wheels that when we are referring to `fullName` in the CFML code, it should concatenate the `STR_USERS_FNAME` and `STR_USERS_LNAME` columns --->
<cfset property(name="fullName", sql="STR_USERS_FNAME + ' ' + STR_USERS_LNAME")>

<!--- Tell Wheels that when displaying error messages or labels for form fields, we want to use `First name(s)` as the label for the `STR_USERS_FNAME` column --->
<cfset property(name="firstName", label="First name(s)")>

<!--- Tell Wheels that when creating new objects, we want them to be auto-populated with a `firstName` property of value `Dave` --->
<cfset property(name="firstName", defaultValue="Dave")>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name that you want to use for the column or SQL function result in the CFML code.</description>
						</argument>
					
						<argument name="column">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the column in the database table to map the property to.</description>
						</argument>
					
						<argument name="sql">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A SQL expression to use to calculate the property value.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A custom label for this property to be referenced in the interface and error messages.</description>
						</argument>
					
						<argument name="defaultValue">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A default value for this property.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="propertyIsPresent">
			<returntype>boolean</returntype>
			<description>Returns `true` if the specified property exists on the model and is not a blank string.</description>
			<examples><![CDATA[<!--- Get an object, set a value and then see if the property exists --->
<cfset employee = model("employee").new()>
<cfset employee.firstName = "dude">
<cfreturn employee.propertyIsPresent("firstName")><!--- Returns true --->

<cfset employee.firstName = "">
<cfreturn employee.propertyIsPresent("firstName")><!--- Returns false --->]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of property to inspect.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="propertyNames">
			<returntype>string</returntype>
			<description>Returns a list of property names ordered by their respective column&apos;s ordinal position in the database table. Also includes calculated property names that will be generated by the Wheels ORM.</description>
			<examples><![CDATA[<!--- Get a list of the property names in use in the user model --->
  		<cfset propNames = model("user").propertyNames()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="protectedProperties">
			<returntype>void</returntype>
			<description>Use this method to specify which properties cannot be set through mass assignment.</description>
			<examples><![CDATA[<!--- In `models/User.cfc`, `firstName` and `lastName` cannot be changed through mass assignment operations like `updateAll()` --->
<cffunction name="init">
	<cfset protectedProperties("firstName,lastName")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Property name (or list of property names) that are not allowed to be altered through mass assignment.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="provides">
			<returntype>void</returntype>
			<description>Defines formats that the controller will respond with upon request. The format can be requested through a URL variable called `format`, by appending the format name to the end of a URL as an extension (when URL rewriting is enabled), or in the request header.</description>
			<examples><![CDATA[<!--- In your controller --->
<cffunction name="init">
	<cfset provides("html,xml,json")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="formats">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Formats to instruct the controller to provide. Valid values are `html` (the default), `xml`, `json`, `csv`, `pdf`, and `xls`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="radioButton">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a radio button form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic example view code --->
<cfoutput>
	<fieldset>
		<legend>Gender</legend>
	    #radioButton(objectName="user", property="gender", tagValue="m", label="Male")#<br />
        #radioButton(objectName="user", property="gender", tagValue="f", label="Female")#
	</fieldset>
</cfoutput>

<!--- Shows radio buttons for selecting the genders for all committee members provided by the `members` association and nested properties --->
<cfoutput>
	<cfloop from="1" to="#ArrayLen(committee.members)#" index="i">
		<div>
			<h3>#committee.members[i].fullName#:</h3>
			<div>
				#radioButton(objectName="committee", association="members", position=i, property="gender", tagValue="m", label="Male")#<br />
				#radioButton(objectName="committee", association="members", position=i, property="gender", tagValue="f", label="Female")#
			</div>
		</div>
	</cfloop>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="tagValue">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The value of the radio button when `selected`.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="radioButtonTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a radio button form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic usage usually involves a `label`, `name`, `value`, and `checked` value --->
<cfoutput>
    <fieldset>
		<legend>Gender</legend>
	    #radioButtonTag(name="gender", value="m", label="Male", checked=true)#<br />
        #radioButtonTag(name="gender", value="f", label="Female")#
	</fieldset>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="value">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Value to populate in tag&apos;s `value` attribute.</description>
						</argument>
					
						<argument name="checked">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to check the radio button by default.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="redirectTo">
			<returntype>void</returntype>
			<description>Redirects the browser to the supplied `controller`/`action`/`key`, `route` or back to the referring page. Internally, this function uses the @URLFor function to build the link and the `cflocation` tag to perform the redirect.</description>
			<examples><![CDATA[<!--- Redirect to an action after successfully saving a user --->
<cfif user.save()>
    <cfset redirectTo(action="saveSuccessful")>
</cfif>

<!--- Redirect to a specific page on a secure server --->
<cfset redirectTo(controller="checkout", action="start", params="type=express", protocol="https")>

<!--- Redirect to a route specified in `config/routes.cfm` and pass in the screen name that the route takes --->
<cfset redirectTo(route="profile", screenName="Joe")>

<!--- Redirect back to the page the user came from --->
<cfset redirectTo(back=true)>]]></examples>
			<arguments>
				
						<argument name="back">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to redirect back to the referring page.</description>
						</argument>
					
						<argument name="addToken">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>See documentation for your CFML engine&apos;s implementation of `cflocation`.</description>
						</argument>
					
						<argument name="statusCode">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>302</defaultvalue>
							<description>See documentation for your CFML engine&apos;s implementation of `cflocation`.</description>
						</argument>
					
						<argument name="route">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of a route that you have configured in `config/routes.cfm`.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the controller to include in the URL.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the action to include in the URL.</description>
						</argument>
					
						<argument name="key">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Key(s) to include in the URL.</description>
						</argument>
					
						<argument name="params">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Any additional params to be set in the query string.</description>
						</argument>
					
						<argument name="anchor">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Sets an anchor name to be appended to the path.</description>
						</argument>
					
						<argument name="onlyPath">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>If `true`, returns only the relative URL (no protocol, host name or port).</description>
						</argument>
					
						<argument name="host">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current host.</description>
						</argument>
					
						<argument name="protocol">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current protocol.</description>
						</argument>
					
						<argument name="port">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>Set this to override the current port number.</description>
						</argument>
					
						<argument name="delay">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to delay the redirection until after the rest of your action code has executed.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="reload">
			<returntype>void</returntype>
			<description>Reloads the property values of this object from the database.</description>
			<examples><![CDATA[<!--- Get an object, call a method on it that could potentially change values, and then reload the values from the database --->
<cfset employee = model("employee").findByKey(params.key)>
<cfset employee.someCallThatChangesValuesInTheDatabase()>
<cfset employee.reload()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="renderNothing">
			<returntype>void</returntype>
			<description>Instructs the controller to render an empty string when it&apos;s finished processing the action. This is very similar to calling `cfabort` with the advantage that any after filters you have set on the action will still be run.</description>
			<examples><![CDATA[<!--- Render a blank white page to the client --->
<cfset renderNothing()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="renderPage">
			<returntype>any</returntype>
			<description>Instructs the controller which view template and layout to render when it&apos;s finished processing the action. Note that when passing values for `controller` and/or `action`, this function does not load the actual action but rather just loads the corresponding view template.</description>
			<examples><![CDATA[<!--- Render a view page for a different action within the same controller --->
<cfset renderPage(action="edit")>

<!--- Render a view page for a different action within a different controller --->
<cfset renderPage(controller="blog", action="new")>

<!--- Another way to render the blog/new template from within a different controller --->
<cfset renderPage(template="/blog/new")>

<!--- Render the view page for the current action but without a layout and cache it for 60 minutes --->
<cfset renderPage(layout=false, cache=60)>

<!--- Load a layout from a different folder within `views` --->
<cfset renderPage(layout="/layouts/blog")>

<!--- Don't render the view immediately but rather return and store in a variable for further processing --->
<cfset myView = renderPage(returnAs="string")>]]></examples>
			<arguments>
				
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Controller to include the view page for.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Action to include the view page for.</description>
						</argument>
					
						<argument name="template">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A specific template to render. Prefix with a leading slash `/` if you need to build a path from the root `views` folder.</description>
						</argument>
					
						<argument name="layout">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The layout to wrap the content in. Prefix with a leading slash `/` if you need to build a path from the root `views` folder. Pass `false` to not load a layout at all.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Number of minutes to cache the content for.</description>
						</argument>
					
						<argument name="returnAs">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `string` to return the result instead of automatically sending it to the client.</description>
						</argument>
					
						<argument name="hideDebugInformation">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to hide the debug information at the end of the output. This is useful when you&apos;re testing XML output in an environment where the global setting for `showDebugInformation` is `true`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="renderPartial">
			<returntype>any</returntype>
			<description>Instructs the controller to render a partial when it&apos;s finished processing the action.</description>
			<examples><![CDATA[<!--- Render the partial `_comment.cfm` located in the current controller's view folder --->
<cfset renderPartial("comment")>

<!--- Render the partial at `views/shared/_comment.cfm` --->
<cfset renderPartial("/shared/comment")>]]></examples>
			<arguments>
				
						<argument name="partial">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the partial file to be used. Prefix with a leading slash `/` if you need to build a path from the root `views` folder. Do not include the partial filename&apos;s underscore and file extension.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Number of minutes to cache the content for.</description>
						</argument>
					
						<argument name="layout">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The layout to wrap the content in. Prefix with a leading slash `/` if you need to build a path from the root `views` folder. Pass `false` to not load a layout at all.</description>
						</argument>
					
						<argument name="returnAs">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `string` to return the result instead of automatically sending it to the client.</description>
						</argument>
					
						<argument name="dataFunction">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Name of a controller function to load data from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="renderText">
			<returntype>void</returntype>
			<description>Instructs the controller to render specified text when it&apos;s finished processing the action.</description>
			<examples><![CDATA[<!--- Render just the text "Done!" to the client --->
<cfset renderText("Done!")>

<!--- Render serialized product data to the client --->
<cfset products = model("product").findAll()>
<cfset renderText(SerializeJson(products))>]]></examples>
			<arguments>
				
						<argument name="text">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to be rendered.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="renderWith">
			<returntype>any</returntype>
			<description>Instructs the controller to render the data passed in to the format that is requested. If the format requested is `json` or `xml`, Wheels will transform the data into that format automatically. For other formats (or to override the automatic formatting), you can also create a view template in this format: `nameofaction.xml.cfm`, `nameofaction.json.cfm`, `nameofaction.pdf.cfm`, etc.</description>
			<examples><![CDATA[<!--- In your controller --->
<cffunction name="init">
	<cfset provides("html,xml,json")>
</cffunction>

<!--- This action will provide the formats defined in `init()` above --->
<cffunction name="list">
	<cfset products = model("product").findAll()>
	<cfset renderWith(products)>
</cffunction>

<!--- This action will only provide the `html` type and will ignore what was defined in the call to `provides()` in the `init()` method above --->
<cffunction name="new">
	<cfset onlyProvides("html")>
	<cfset model("product").new()>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="data">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Data to format and render.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Controller to include the view page for.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Action to include the view page for.</description>
						</argument>
					
						<argument name="template">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A specific template to render. Prefix with a leading slash `/` if you need to build a path from the root `views` folder.</description>
						</argument>
					
						<argument name="layout">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The layout to wrap the content in. Prefix with a leading slash `/` if you need to build a path from the root `views` folder. Pass `false` to not load a layout at all.</description>
						</argument>
					
						<argument name="cache">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Number of minutes to cache the content for.</description>
						</argument>
					
						<argument name="returnAs">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `string` to return the result instead of automatically sending it to the client.</description>
						</argument>
					
						<argument name="hideDebugInformation">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to hide the debug information at the end of the output. This is useful when you&apos;re testing XML output in an environment where the global setting for `showDebugInformation` is `true`.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="resetCycle">
			<returntype>void</returntype>
			<description>Resets a cycle so that it starts from the first list value the next time it is called.</description>
			<examples><![CDATA[<!--- alternating row colors and shrinking emphasis --->
<cfoutput query="employees" group="departmentId">
	<div class="#cycle(values="even,odd", name="row")#">
		<ul>
			<cfoutput>
				<cfset rank = cycle(values="president,vice-president,director,manager,specialist,intern", name="position")>
				<li class="#rank#">#categories.categoryName#</li>
				<cfset resetCycle("emphasis")>
			</cfoutput>
		</ul>
	</div>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue>default</defaultvalue>
							<description>The name of the cycle to reset.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="response">
			<returntype>string</returntype>
			<description>Returns content that Wheels will send to the client in response to the request.</description>
			<examples><![CDATA[<!--- In a controller --->
<cffunction name="init">
	<cfset filters(type="after", through="translateResponse")>
</cffunction>

<!--- After filter translates response and sets it --->
<cffunction name="translateResponse">
	<cfset var wheelsResponse = response()>
	<cfset var translatedResponse = someTranslationMethod(wheelsResponse)>
	<cfset setResponse(translatedResponse)>
</cffunction>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="save">
			<returntype>boolean</returntype>
			<description>Saves the object if it passes validation and callbacks. Returns `true` if the object was saved successfully to the database, `false` if not.</description>
			<examples><![CDATA[<!--- Save the user object to the database (will automatically do an `INSERT` or `UPDATE` statement depending on if the record is new or already exists --->
<cfset user.save()>

<!--- Save the user object directly in an if statement without using `cfqueryparam` and take appropriate action based on the result --->
<cfif user.save(parameterize=false)>
	<cfset flashInsert(notice="The user was saved!")>
	<cfset redirectTo(action="edit")>
<cfelse>
	<cfset flashInsert(alert="Error, please correct!")>
	<cfset renderPage(action="edit")>
</cfif>]]></examples>
			<arguments>
				
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to reload the object from the database once an insert/update has completed.</description>
						</argument>
					
						<argument name="validate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to skip validations for this operation.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="secondSelectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing one select form control for the seconds of a minute based on the supplied `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of the function accepts a `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #secondSelectTag(name="secondsToLaunch", selected=params.secondsToLaunch)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The second that should be selected initially.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="select">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a `select` form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Example 1: Basic `select` field with `label` and required `objectName` and `property` arguments --->
<!--- - Controller code --->
<cfset authors = model("author").findAll()>

<!--- - View code --->
<cfoutput>
    <p>#select(objectName="book", property="authorId", options=authors)#</p>
</cfoutput>

<!--- Example 2: Shows `select` fields for selecting order statuses for all shipments provided by the `orders` association and nested properties --->
<!--- - Controller code --->
<cfset shipment = model("shipment").findByKey(key=params.key, where="shipments.statusId=#application.NEW_STATUS_ID#", include="order")>
<cfset statuses = model("status").findAll(order="name")>

<!--- - View code --->
<cfoutput>
	<cfloop from="1" to="#ArrayLen(shipments.orders)#" index="i">
		#select(label="Order ##shipments.orders[i].orderNum#", objectName="shipment", association="orders", position=i, property="statusId", options=statuses)#
	</cfloop>
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="options">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>A collection to populate the select form control with. Can be a query recordset or an array of objects.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="valueField">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The column or property to use for the value of each list element. Used only when a query or array of objects has been supplied in the `options` argument.</description>
						</argument>
					
						<argument name="textField">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The column or property to use for the value of each list element that the end user will see. Used only when a query or array of objects has been supplied in the `options` argument.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="selectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a select form control based on the supplied `name` and `options`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Controller code --->
<cfset cities = model("city").findAll()>

<!--- View code --->
<cfoutput>
    #selectTag(name="cityId", options=cities)#
</cfoutput>

<!--- Do this when Wheels isn't grabbing the correct values for the `option`s' values and display texts --->
<cfoutput>
	#selectTag(name="cityId", options=cities, valueField="id", textField="name")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="options">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>A collection to populate the select form control with. Can be a query recordset or an array of objects.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value of option that should be selected by default.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="multiple">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to allow multiple selection of options in the select form control.</description>
						</argument>
					
						<argument name="valueField">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The column or property to use for the value of each list element. Used only when a query or array of objects has been supplied in the `options` argument.</description>
						</argument>
					
						<argument name="textField">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The column or property to use for the value of each list element that the end user will see. Used only when a query or array of objects has been supplied in the `options` argument.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="sendEmail">
			<returntype>any</returntype>
			<description>Sends an email using a template and an optional layout to wrap it in. Besides the Wheels-specific arguments documented here, you can also pass in any argument that is accepted by the `cfmail` tag as well as your own arguments to be used by the view.</description>
			<examples><![CDATA[<!--- Get a member and send a welcome email, passing in a few custom variables to the template --->
<cfset newMember = model("member").findByKey(params.member.id)>
<cfset sendEmail(
	to=newMember.email,
	template="myemailtemplate",
	subject="Thank You for Becoming a Member",
	recipientName=newMember.name,
	startDate=newMember.startDate
)>]]></examples>
			<arguments>
				
						<argument name="template">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The path to the email template or two paths if you want to send a multipart email. if the `detectMultipart` argument is `false`, the template for the text version should be the first one in the list. This argument is also aliased as `templates`.</description>
						</argument>
					
						<argument name="from">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Email address to send from.</description>
						</argument>
					
						<argument name="to">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>List of email addresses to send the email to.</description>
						</argument>
					
						<argument name="subject">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The subject line of the email.</description>
						</argument>
					
						<argument name="layout">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Layout(s) to wrap the email template in. This argument is also aliased as `layouts`.</description>
						</argument>
					
						<argument name="file">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A list of the names of the files to attach to the email. This will reference files stored in the `files` folder (or a path relative to it). This argument is also aliased as `files`.</description>
						</argument>
					
						<argument name="detectMultipart">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>When set to `true` and multiple values are provided for the `template` argument, Wheels will detect which of the templates is text and which one is HTML (by counting the `&lt;` characters).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="sendFile">
			<returntype>any</returntype>
			<description>Sends a file to the user (from the `files` folder or a path relative to it by default).</description>
			<examples><![CDATA[<!--- Send a PDF file to the user --->
<cfset sendFile(file="wheels_tutorial_20081028_J657D6HX.pdf")>

<!--- Send the same file but give the user a different name in the browser dialog window --->
<cfset sendFile(file="wheels_tutorial_20081028_J657D6HX.pdf", name="Tutorial.pdf")>

<!--- Send a file that is located outside of the web root --->
<cfset sendFile(file="../../tutorials/wheels_tutorial_20081028_J657D6HX.pdf")>]]></examples>
			<arguments>
				
						<argument name="file">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The file to send to the user.</description>
						</argument>
					
						<argument name="name">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The file name to show in the browser download dialog box.</description>
						</argument>
					
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The HTTP content type to deliver the file as.</description>
						</argument>
					
						<argument name="disposition">
							<type>string</type>
							<required>0</required>
							<defaultvalue>attachment</defaultvalue>
							<description>Set to `inline` to have the browser handle the opening of the file (possibly inline in the browser) or set to `attachment` to force a download dialog box.</description>
						</argument>
					
						<argument name="directory">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Directory outside of the webroot where the file exists. Must be a full path.</description>
						</argument>
					
						<argument name="deleteFile">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Pass in `true` to delete the file on the server after sending it.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="set">
			<returntype>void</returntype>
			<description>Use to configure a global setting or set a default for a function.</description>
			<examples><![CDATA[<!--- Example 1: Set the `URLRewriting` setting to `Partial` --->
<cfset set(URLRewriting="Partial")>

<!--- Example 2: Set default values for the arguments in the `buttonTo` view helper. This works for the majority of Wheels functions/arguments. --->
<cfset set(functionName="buttonTo", onlyPath=true, host="", protocol="", port=0, text="", confirm="", image="", disable="")>

<!--- Example 3: Set the default values for a form helper to get the form marked up to your preferences --->
<cfset set(functionName="textField", labelPlacement="before", prependToLabel="<div>", append="</div>", appendToLabel="<br />")>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="setFilterChain">
			<returntype>void</returntype>
			<description>Use this function if you need a more low level way of setting the entire filter chain for a controller.</description>
			<examples><![CDATA[<!--- Set filter chain directly in an array --->
<cfset setFilterChain([
	{through="restrictAccess"},
	{through="isLoggedIn,checkIPAddress", except="home,login"},
	{type="after", through="logConversion", only="thankYou"}
])>]]></examples>
			<arguments>
				
						<argument name="chain">
							<type>array</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>An array of structs, each of which represent an `argumentCollection` that get passed to the `filters` function. This should represent the entire filter chain that you want to use for this controller.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setPagination">
			<returntype>void</returntype>
			<description>Allows you to set a pagination handle for a custom query so you can perform pagination on it in your view with `paginationLinks()`.</description>
			<examples><![CDATA[<!---
	Note that there are two ways to do pagination yourself using
	a custom query.
	
	1) Do a query that grabs everything that matches and then use
	the `cfouput` or `cfloop` tag to page through the results.
		
	2) Use your database to make 2 queries. The first query
	basically does a count of the total number of records that match
	the criteria and the second query actually selects the page of
	records for retrieval.
	
	In the example below, we will show how to write a custom query
	using both of these methods. Note that the syntax where your
	database performs the pagination will differ depending on the
	database engine you are using. Plese consult your database
	engine's documentation for the correct syntax.
		
	Also note that the view code will differ depending on the method
	used.
--->

<!--- 
	First method: Handle the pagination through your CFML engine
--->

<!--- Model code --->
<!--- In your model (ie. User.cfc), create a custom method for your custom query --->
<cffunction name="myCustomQuery">
	<cfargument name="page" type="numeric">
	<cfargument name="perPage" type="numeric" required="false" default="25">
				
	<cfquery name="local.customQuery" datasource="#get('dataSourceName')#">
		SELECT * FROM users
	</cfquery>

	<cfset setPagination(totalRecords=local.customQuery.RecordCount, currentPage=arguments.page, perPage=arguments.perPage, handle="myCustomQueryHandle")>
	<cfreturn customQuery>
</cffunction>
		
<!--- Controller code --->
<cffunction name="list">
	<cfparam name="params.page" default="1">
	<cfparam name="params.perPage" default="25">
	
	<cfset allUsers = model("user").myCustomQuery(page=params.page, perPage=params.perPage)>
	<!--- 
		Because we're going to let `cfoutput`/`cfloop` handle the pagination,
		we're going to need to get some addition information about the
		pagination.
	 --->
	<cfset paginationData = pagination("myCustomQueryHandle")>
</cffunction>

<!--- View code (using `cfloop`) --->
<!--- Use the information from `paginationData` to page through the records --->
<cfoutput>
<ul>
    <cfloop query="allUsers" statrow="#paginationData.startrow#" endrow="#paginationData.endrow#">
        <li>#allUsers.firstName# #allUsers.lastName#</li>
    </cfloop>
</ul>
#paginationLinks(handle="myCustomQueryHandle")#
</cfoutput>

<!--- View code (using `cfoutput`) --->
<!--- Use the information from `paginationData` to page through the records --->
<ul>
    <cfoutput query="allUsers" statrow="#paginationData.startrow#" maxrows="#paginationData.maxrows#">
        <li>#allUsers.firstName# #allUsers.lastName#</li>
    </cfoutput>
</ul>
<cfoutput>#paginationLinks(handle="myCustomQueryHandle")#</cfoutput>


<!--- 
	Second method: Handle the pagination through the database
--->

<!--- Model code --->
<!--- In your model (ie. `User.cfc`), create a custom method for your custom query --->
<cffunction name="myCustomQuery">
	<cfargument name="page" type="numeric">
	<cfargument name="perPage" type="numeric" required="false" default="25">
	
	<cfquery name="local.customQueryCount" datasource="#get('dataSouceName')#">
		SELECT COUNT(*) AS theCount FROM users
	</cfquery>
				
	<cfquery name="local.customQuery" datasource="#get('dataSourceName')#">
		SELECT * FROM users
		LIMIT #arguments.page# OFFSET #arguments.perPage#
	</cfquery>
	
	<!--- Notice the we use the value from the first query for `totalRecords`  --->
	<cfset setPagination(totalRecords=local.customQueryCount.theCount, currentPage=arguments.page, perPage=arguments.perPage, handle="myCustomQueryHandle")>
	<!--- We return the second query --->
	<cfreturn customQuery>
</cffunction>
		
<!--- Controller code --->
<cffunction name="list">
	<cfparam name="params.page" default="1">
	<cfparam name="params.perPage" default="25">
	<cfset allUsers = model("user").myCustomQuery(page=params.page, perPage=params.perPage)>
</cffunction>

<!--- View code (using `cfloop`) --->
<cfoutput>
<ul>
    <cfloop query="allUsers">
        <li>#allUsers.firstName# #allUsers.lastName#</li>
    </cfloop>
</ul>
#paginationLinks(handle="myCustomQueryHandle")#
</cfoutput>

<!--- View code (using `cfoutput`) --->
<ul>
    <cfoutput query="allUsers">
        <li>#allUsers.firstName# #allUsers.lastName#</li>
    </cfoutput>
</ul>
<cfoutput>#paginationLinks(handle="myCustomQueryHandle")#</cfoutput>]]></examples>
			<arguments>
				
						<argument name="totalRecords">
							<type>numeric</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Total count of records that should be represented by the paginated links.</description>
						</argument>
					
						<argument name="currentPage">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Page number that should be represented by the data being fetched and the paginated links.</description>
						</argument>
					
						<argument name="perPage">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>25</defaultvalue>
							<description>Number of records that should be represented on each page of data.</description>
						</argument>
					
						<argument name="handle">
							<type>string</type>
							<required>0</required>
							<defaultvalue>query</defaultvalue>
							<description>Name of handle to reference in @paginationLinks.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setPrimaryKey">
			<returntype>void</returntype>
			<description>Allows you to pass in the name(s) of the property(s) that should be used as the primary key(s). Pass as a list if defining a composite primary key. Also aliased as `setPrimaryKeys()`.</description>
			<examples><![CDATA[<!--- In `models/User.cfc`, define the primary key as a column called `userID` --->
<cffunction name="init">
	<cfset setPrimaryKey("userID")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Property (or list of properties) to set as the primary key.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setPrimaryKeys">
			<returntype>void</returntype>
			<description>Alias for @setPrimaryKey. Use this for better readability when you&apos;re setting multiple properties as the primary key.</description>
			<examples><![CDATA[<!--- In `models/Subscription.cfc`, define the primary key as composite of the columns `customerId` and `publicationId` --->
<cffunction name="init">
	<cfset setPrimaryKeys("customerId,publicationId")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Property (or list of properties) to set as the primary key.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setProperties">
			<returntype>void</returntype>
			<description>Allows you to set all the properties of an object at once by passing in a structure with keys matching the property names.</description>
			<examples><![CDATA[<!--- Update the properties of the object with the params struct containing the values of a form post --->
<cfset user = model("user").findByKey(1)>
<cfset user.setProperties(params.user)>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setResponse">
			<returntype>void</returntype>
			<description>Sets content that Wheels will send to the client in response to the request.</description>
			<examples><![CDATA[<!--- In a controller --->
<cffunction name="init">
	<cfset filters(type="after", through="translateResponse")>
</cffunction>

<!--- After filter translates response and sets it --->
<cffunction name="translateResponse">
	<cfset var wheelsResponse = response()>
	<cfset var translatedResponse = someTranslationFunction(wheelsResponse)>
	<cfset setResponse(translatedResponse)>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="content">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The content to set as the response.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setTableNamePrefix">
			<returntype>void</returntype>
			<description>Sets a prefix to prepend to the table name when this model runs SQL queries.</description>
			<examples><![CDATA[<!--- In `models/User.cfc`, add a prefix to the default table name of `tbl` --->
<cffunction name="init">
	<cfset setTableNamePrefix("tbl")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="prefix">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>A prefix to prepend to the table name.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="setVerificationChain">
			<returntype>void</returntype>
			<description>Use this function if you need a more low level way of setting the entire verification chain for a controller.</description>
			<examples><![CDATA[<!--- Set verification chain directly in an array --->
<cfset setVerificationChain([
	{only="handleForm", post=true},
	{only="edit", get=true, params="userId", paramsTypes="integer"},
	{only="edit", get=true, params="userId", paramsTypes="integer", handler="index", error="Invalid userId"}
])>]]></examples>
			<arguments>
				
						<argument name="chain">
							<type>array</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>An array of structs, each of which represent an `argumentCollection` that get passed to the `verifies` function. This should represent the entire verification chain that you want to use for this controller.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="simpleFormat">
			<returntype>string</returntype>
			<description>Replaces single newline characters with HTML break tags and double newline characters with HTML paragraph tags (properly closed to comply with XHTML standards).</description>
			<examples><![CDATA[<!--- How most of your calls will look --->
#simpleFormat(post.comments)#

<!--- Demonstrates what output looks like with specific data --->
<cfsavecontent variable="comment">
	I love this post!

	Here's why:
	* Short
	* Succinct
	* Awesome
</cfsavecontent>
#simpleFormat(comment)#
-> <p>I love this post!</p>
   <p>
       Here's why:<br />
	   * Short<br />
	   * Succinct<br />
	   * Awesome
   </p>]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to format.</description>
						</argument>
					
						<argument name="wrap">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to wrap the result in a paragraph.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="singularize">
			<returntype>string</returntype>
			<description>Returns the singular form of the passed in word.</description>
			<examples><![CDATA[<!--- Singularize a word, will result in "language" --->
#singularize("languages")#]]></examples>
			<arguments>
				
						<argument name="word">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>String to singularize.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="startFormTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing the opening form tag. The form&apos;s action will be built according to the same rules as `URLFor`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- view code --->
<cfoutput>
    #startFormTag(action="create", spamProtection=true)#
        <!--- your form controls --->
    #endFormTag()#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="method">
							<type>string</type>
							<required>0</required>
							<defaultvalue>post</defaultvalue>
							<description>The type of method to use in the form tag. `get` and `post` are the options.</description>
						</argument>
					
						<argument name="multipart">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` if the form should be able to upload files.</description>
						</argument>
					
						<argument name="spamProtection">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to protect the form against spammers (done with JavaScript).</description>
						</argument>
					
						<argument name="route">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of a route that you have configured in `config/routes.cfm`.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the controller to include in the URL.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the action to include in the URL.</description>
						</argument>
					
						<argument name="key">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Key(s) to include in the URL.</description>
						</argument>
					
						<argument name="params">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Any additional params to be set in the query string.</description>
						</argument>
					
						<argument name="anchor">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Sets an anchor name to be appended to the path.</description>
						</argument>
					
						<argument name="onlyPath">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>If `true`, returns only the relative URL (no protocol, host name or port).</description>
						</argument>
					
						<argument name="host">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current host.</description>
						</argument>
					
						<argument name="protocol">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current protocol.</description>
						</argument>
					
						<argument name="port">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>Set this to override the current port number.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="stripLinks">
			<returntype>string</returntype>
			<description>Removes all links from an HTML string, leaving just the link text.</description>
			<examples><![CDATA[#stripLinks("<strong>Wheels</strong> is a framework for <a href="http://www.adobe.com/products/coldfusion/">ColdFusion</a>.")#
-> <strong>Wheels</strong> is a framework for ColdFusion.]]></examples>
			<arguments>
				
						<argument name="html">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The HTML to remove links from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="stripTags">
			<returntype>string</returntype>
			<description>Removes all HTML tags from a string.</description>
			<examples><![CDATA[#stripTags("<strong>Wheels</strong> is a framework for <a href="http://www.adobe.com/products/coldfusion/">ColdFusion</a>.")#
-> Wheels is a framework for ColdFusion.]]></examples>
			<arguments>
				
						<argument name="html">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The HTML to remove tag markup from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="styleSheetLinkTag">
			<returntype>string</returntype>
			<description>Returns a `link` tag for a stylesheet (or several) based on the supplied arguments.</description>
			<examples><![CDATA[<!--- view code --->
<head>
	<!--- Includes `stylesheets/styles.css` --->
    #styleSheetLinkTag("styles")#
	<!--- Includes `stylesheets/blog.css` and `stylesheets/comments.css` --->
	#styleSheetLinkTag("blog,comments")#
	<!--- Includes printer style sheet --->
	#styleSheetLinkTag(source="print", media="print")#
</head>

<body>
	<!--- This will still appear in the `head` --->
	#styleSheetLinkTag(source="tabs", head=true)#
</body>]]></examples>
			<arguments>
				
						<argument name="sources">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of one or many CSS files in the `stylesheets` folder, minus the `.css` extension. (Can also be called with the `source` argument.)</description>
						</argument>
					
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue>text/css</defaultvalue>
							<description>The `type` attribute for the `link` tag.</description>
						</argument>
					
						<argument name="media">
							<type>string</type>
							<required>0</required>
							<defaultvalue>all</defaultvalue>
							<description>The `media` attribute for the `link` tag.</description>
						</argument>
					
						<argument name="head">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to place the output in the `head` area of the HTML page instead of the default behavior, which is to place the output where the function is called from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="submitTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a submit button `form` control. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[!--- view code --->
<cfoutput>
    #startFormTag(action="something")#
        <!--- form controls go here --->
        #submitTag()#
    #endFormTag()#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="value">
							<type>string</type>
							<required>0</required>
							<defaultvalue>Save changes</defaultvalue>
							<description>Message to display in the button form control.</description>
						</argument>
					
						<argument name="image">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>File name of the image file to use in the button form control.</description>
						</argument>
					
						<argument name="disable">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Whether or not to disable the button upon clicking. (prevents double-clicking.)</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="sum">
			<returntype>any</returntype>
			<description>Calculates the sum of values for a given property. Uses the SQL function `SUM`. If no records can be found to perform the calculation on you can use the `ifNull` argument to decide what should be returned.</description>
			<examples><![CDATA[<!--- Get the sum of all salaries --->
<cfset allSalaries = model("employee").sum("salary")>

<!--- Get the sum of all salaries for employees in a given country --->
<cfset allAustralianSalaries = model("employee").sum(property="salary", include="country", where="countryname='Australia'")>

<!--- Make sure a numeric value is always returned, even if there are no records analyzed by the query --->
<cfset salarySum = model("employee").sum(property="salary", where="salary BETWEEN #params.min# AND #params.max#", ifNull=0)>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property to get the sum for (must be a property of a numeric data type).</description>
						</argument>
					
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="distinct">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>When `true`, `SUM` returns the sum of unique values only.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="ifNull">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The value returned if no records are found. Common usage is to set this to `0` to make sure a numeric value is always returned instead of a blank string.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="table">
			<returntype>void</returntype>
			<description>Use this method to tell Wheels what database table to connect to for this model. You only need to use this method when your table naming does not follow the standard Wheels convention of a singular object name mapping to a plural table name.</description>
			<examples><![CDATA[<!--- In models/User.cfc --->
<cffunction name="init">
	<!--- Tell Wheels to use the `tbl_USERS` table in the database for the `user` model instead of the default (which would be `users`) --->
	<cfset table("tbl_USERS")>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the table to map this model to.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="tableName">
			<returntype>string</returntype>
			<description>Returns the name of the database table that this model is mapped to.</description>
			<examples><![CDATA[<!--- Check what table the user model uses --->
<cfset whatAmIMappedTo = model("user").tableName()>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="textArea">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a text area field form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Provide `label` and required `objectName` and `property` --->
<cfoutput>
    #textArea(label="Overview", objectName="article", property="overview")#
</cfoutput>

<!--- Display fields for photos provided by the `screenshots` association and nested properties --->
<fieldset>
	<legend>Screenshots</legend>
	<cfloop from="1" to="#ArrayLen(site.screenshots)#" index="i">
		#fileField(label="File ##i#", objectName="site", association="screenshots", position=i, property="file")#
		#textArea(label="Caption ##i#", objectName="site", association="screenshots", position=i, property="caption")#
	</cfloop>
</fieldset>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="textAreaTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a text area form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic usage usually involves a `label`, `name`, and `password` --->
<cfoutput>
    #textAreaTag(label="Description", name="description", value=params.description)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="content">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Content to display in `textarea` on page load.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="textField">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a text field form control based on the supplied `objectName` and `property`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Provide a `label` and the required `objectName` and `property` --->
<cfoutput>
    #textField(label="First Name", objectName="user", property="firstName")#
</cfoutput>

<!--- Display fields for phone numbers provided by the `phoneNumbers` association and nested properties --->
<fieldset>
	<legend>Phone Numbers</legend>
	<cfloop from="1" to="#ArrayLen(contact.phoneNumbers)#" index="i">
		#textField(label="Phone ##i#", objectName="contact", association="phoneNumbers", position=i, property="phoneNumber")#
	</cfloop>
</fieldset>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>useDefaultLabel</defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="textFieldTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a text field form control based on the supplied `name`. Note: Pass any additional arguments like `class`, `rel`, and `id`, and the generated tag will also include those values as HTML attributes.</description>
			<examples><![CDATA[<!--- Basic usage usually involves a `label`, `name`, and `value` --->
<cfoutput>
    #textFieldTag(label="Search", name="q", value=params.q)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="value">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value to populate in tag&apos;s `value` attribute.</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="timeAgoInWords">
			<returntype>string</returntype>
			<description>Pass in a date to this method, and it will return a string describing the approximate time difference between that date and the current date.</description>
			<examples><![CDATA[<cfset aWhileAgo = Now() - 30>
<cfoutput>#timeAgoInWords(aWhileAgo)#</cfoutput>]]></examples>
			<arguments>
				
						<argument name="fromTime">
							<type>date</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Date to compare from.</description>
						</argument>
					
						<argument name="includeSeconds">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to include the number of seconds in the returned string.</description>
						</argument>
					
						<argument name="toTime">
							<type>date</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Date to compare to.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="timeSelect">
			<returntype>string</returntype>
			<description>Builds and returns a string containing three select form controls for hour, minute, and second based on the supplied `objectName` and `property`.</description>
			<examples><![CDATA[<!--- View code --->
<cfoutput>
    #timeSelect(objectName="business", property="openUntil")#
</cfoutput>

<!--- Show fields for hour and minute --->
<cfoutput>
	#timeSelect(objectName="business", property="openUntil", order="hour,minute")#
</cfoutput>

<!--- Only show 15-minute intervals --->
<cfoutput>
	#timeSelect(objectName="appointment", property="dateTimeStart", minuteStep=15)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="objectName">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The variable name of the object to build the form control for.</description>
						</argument>
					
						<argument name="property">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the property to use in the form control.</description>
						</argument>
					
						<argument name="association">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The name of the association that the property is located on. Used for building nested forms that work with nested properties. If you are building a form with deep nesting, simply pass in a list to the nested object, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="position">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The position used when referencing a `hasMany` relationship in the `association` argument. Used for building nested forms that work with nested properties. If you are building a form with deep nestings, simply pass in a list of positions, and Wheels will figure it out.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue>hour,minute,second</defaultvalue>
							<description>Use to change the order of or exclude time select tags.</description>
						</argument>
					
						<argument name="separator">
							<type>string</type>
							<required>0</required>
							<defaultvalue>:</defaultvalue>
							<description>Use to change the character that is displayed between the time select tags.</description>
						</argument>
					
						<argument name="minuteStep">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Pass in `10` to only show minute 10, 20, 30, etc.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>The label text to use in the form control. The label will be applied to all `select` tags, but you can pass in a list to cutomize each one individually.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="errorElement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>span</defaultvalue>
							<description>HTML tag to wrap the form control with when the object contains errors.</description>
						</argument>
					
						<argument name="errorClass">
							<type>string</type>
							<required>0</required>
							<defaultvalue>fieldWithErrors</defaultvalue>
							<description>The class name of the HTML tag that wraps the form control when there are errors.</description>
						</argument>
					
						<argument name="combine">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `false` to not combine the select parts into a single `DateTime` object.</description>
						</argument>
					
						<argument name="twelveHour">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>whether to display the hours in 24 or 12 hour format. 12 hour format has AM/PM drop downs</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="timeSelectTags">
			<returntype>string</returntype>
			<description>Builds and returns a string containing three select form controls for hour, minute, and second based on `name`.</description>
			<examples><![CDATA[<!--- This "Tag" version of function accepts `name` and `selected` instead of binding to a model object --->
<cfoutput>
    #timeSelectTags(name="timeOfMeeting" selected=params.timeOfMeeting)#
</cfoutput>

<!--- Show fields for `hour` and `minute` only --->
<cfoutput>
	#timeSelectTags(name="timeOfMeeting", selected=params.timeOfMeeting, order="hour,minute")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Value of option that should be selected by default.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue>hour,minute,second</defaultvalue>
							<description>Use to change the order of or exclude time select tags.</description>
						</argument>
					
						<argument name="separator">
							<type>string</type>
							<required>0</required>
							<defaultvalue>:</defaultvalue>
							<description>Use to change the character that is displayed between the time select tags.</description>
						</argument>
					
						<argument name="minuteStep">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>1</defaultvalue>
							<description>Pass in `10` to only show minute 10, 20, 30, etc.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control. The label will be applied to all `select` tags, but you can pass in a list to cutomize each one individually.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="combine">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `false` to not combine the select parts into a single `DateTime` object.</description>
						</argument>
					
						<argument name="twelveHour">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>whether to display the hours in 24 or 12 hour format. 12 hour format has AM/PM drop downs</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="timeUntilInWords">
			<returntype>string</returntype>
			<description>Pass in a date to this method, and it will return a string describing the approximate time difference between the current date and that date.</description>
			<examples><![CDATA[<cfset aLittleAhead = Now() + 30>
<cfoutput>#timeUntilInWords(aLittleAhead)#</cfoutput>]]></examples>
			<arguments>
				
						<argument name="toTime">
							<type>date</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Date to compare to.</description>
						</argument>
					
						<argument name="includeSeconds">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to include the number of seconds in the returned string.</description>
						</argument>
					
						<argument name="fromTime">
							<type>date</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Date to compare from.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="titleize">
			<returntype>string</returntype>
			<description>Capitalizes all words in the text to create a nicer looking title.</description>
			<examples><![CDATA[#titleize("Wheels is a framework for ColdFusion")#
-> Wheels Is A Framework For ColdFusion]]></examples>
			<arguments>
				
						<argument name="word">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to turn into a title.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="toggle">
			<returntype>any</returntype>
			<description>Assigns to the property specified the opposite of the property&apos;s current boolean value. Throws an error if the property cannot be converted to a boolean value. Returns this object if save called internally is `false`.</description>
			<examples><![CDATA[<!--- Get an object, and toggle a boolean property --->
<cfset user = model("user").findByKey(58)>
<cfset isSuccess = user.toggle("isActive")><!--- returns whether the object was saved properly --->
<!--- You can also use a dynamic helper for this --->
<cfset isSuccess = user.toggleIsActive()>]]></examples>
			<arguments>
				
						<argument name="save">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Argument to decide whether save the property after it has been toggled. Defaults to true.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="toXHTML">
			<returntype>string</returntype>
			<description>Returns an XHTML-compliant string.</description>
			<examples><![CDATA[<!--- Outputs `productId=5&amp;categoryId=12&amp;returningCustomer=1` --->
<cfoutput>
	#toXHTML("productId=5&categoryId=12&returningCustomer=1")#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>String to make XHTML-compliant.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="truncate">
			<returntype>string</returntype>
			<description>Truncates text to the specified length and replaces the last characters with the specified truncate string (which defaults to &quot;...&quot;).</description>
			<examples><![CDATA[#truncate(text="Wheels is a framework for ColdFusion", length=20)#
-> Wheels is a frame...

#truncate(text="Wheels is a framework for ColdFusion", truncateString=" (more)")#
-> Wheels is a framework f (more)]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to truncate.</description>
						</argument>
					
						<argument name="length">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>30</defaultvalue>
							<description>Length to truncate the text to.</description>
						</argument>
					
						<argument name="truncateString">
							<type>string</type>
							<required>0</required>
							<defaultvalue>...</defaultvalue>
							<description>String to replace the last characters with.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="update">
			<returntype>boolean</returntype>
			<description>Updates the object with the supplied properties and saves it to the database. Returns `true` if the object was saved successfully to the database and `false` otherwise.</description>
			<examples><![CDATA[<!--- Get a post object and then update its title in the database --->
<cfset post = model("post").findByKey(33)>
<cfset post.update(title="New version of Wheels just released")>

<!--- Get a post object and then update its title and other properties based on what is pased in from the URL/form --->
<cfset post = model("post").findByKey(params.key)>
<cfset post.update(title="New version of Wheels just released", properties=params.post)>

<!--- If you have a `hasOne` association setup from `author` to `bio`, you can do a scoped call. (The `setBio` method below will call `bio.update(authorId=anAuthor.id)` internally.) --->
<cfset author = model("author").findByKey(params.authorId)>
<cfset bio = model("bio").findByKey(params.bioId)>
<cfset author.setBio(bio)>

<!--- If you have a `hasMany` association setup from `owner` to `car`, you can do a scoped call. (The `addCar` method below will call `car.update(ownerId=anOwner.id)` internally.) --->
<cfset anOwner = model("owner").findByKey(params.ownerId)>
<cfset aCar = model("car").findByKey(params.carId)>
<cfset anOwner.addCar(aCar)>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `removeComment` method below will call `comment.update(postId="")` internally.) --->
<cfset aPost = model("post").findByKey(params.postId)>
<cfset aComment = model("comment").findByKey(params.commentId)>
<cfset aPost.removeComment(aComment)>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="validate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to skip validations for this operation.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="updateAll">
			<returntype>numeric</returntype>
			<description>Updates all properties for the records that match the `where` argument. Property names and values can be passed in either using named arguments or as a struct to the `properties` argument. By default, objects will not be instantiated and therefore callbacks and validations are not invoked. You can change this behavior by passing in `instantiate=true`. This method returns the number of records that were updated.</description>
			<examples><![CDATA[<!--- Update the `published` and `publishedAt` properties for all records that have `published=0` --->
<cfset recordsUpdated = model("post").updateAll(published=1, publishedAt=Now(), where="published=0")>

<!--- If you have a `hasMany` association setup from `post` to `comment`, you can do a scoped call. (The `removeAllComments` method below will call `model("comment").updateAll(postid="", where="postId=#post.id#")` internally.) --->
<cfset aPost = model("post").findByKey(params.postId)>
<cfset removedSuccessfully = aPost.removeAllComments()>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="include">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Associations that should be included in the query using `INNER` or `LEFT OUTER` joins (which join type that is used depends on how the association has been set up in your model). If all included associations are set on the current model, you can specify them in a list (e.g. `department,addresses,emails`). You can build more complex `include` strings by using parentheses when the association is set on an included model, like `album(artist(genre))`, for example. These complex `include` strings only work when `returnAs` is set to `query` though.</description>
						</argument>
					
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="instantiate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether or not to instantiate the object(s) first. When objects are not instantiated, any callbacks and validations set on them will be skipped.</description>
						</argument>
					
						<argument name="validate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to skip validations for this operation.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="updateByKey">
			<returntype>boolean</returntype>
			<description>Finds the object with the supplied key and saves it (if validation permits it) with the supplied properties and/or named arguments. Property names and values can be passed in either using named arguments or as a struct to the `properties` argument. Returns `true` if the object was found and updated successfully, `false` otherwise.</description>
			<examples><![CDATA[<!--- Updates the object with `33` as the primary key value with values passed in through the URL/form --->
<cfset result = model("post").updateByKey(33, params.post)>

<!--- Updates the object with `33` as the primary key using named arguments --->
<cfset result = model("post").updateByKey(key=33, title="New version of Wheels just released", published=1)>]]></examples>
			<arguments>
				
						<argument name="key">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Primary key value(s) of the record to fetch. Separate with comma if passing in multiple primary key values. Accepts a string, list, or a numeric value.</description>
						</argument>
					
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="validate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to skip validations for this operation.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="updateOne">
			<returntype>boolean</returntype>
			<description>Gets an object based on the arguments used and updates it with the supplied properties. Returns `true` if an object was found and updated successfully, `false` otherwise.</description>
			<examples><![CDATA[<!--- Sets the `new` property to `1` on the most recently released product --->
<cfset result = model("product").updateOne(order="releaseDate DESC", new=1)>

<!--- If you have a `hasOne` association setup from `user` to `profile`, you can do a scoped call. (The `removeProfile` method below will call `model("profile").updateOne(where="userId=#aUser.id#", userId="")` internally.) --->
<cfset aUser = model("user").findByKey(params.userId)>
<cfset aUser.removeProfile()>]]></examples>
			<arguments>
				
						<argument name="where">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>This argument maps to the `WHERE` clause of the query. The following operators are supported: `=`, `!=`, `&lt;&gt;`, `&lt;`, `&lt;=`, `&gt;`, `&gt;=`, `LIKE`, `NOT LIKE`, `IN`, `NOT IN`, `IS NULL`, `IS NOT NULL`, `AND`, and `OR`. (Note that the key words need to be written in upper case.) You can also use parentheses to group statements. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="order">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Maps to the `ORDER BY` clause of the query. You do not need to specify the table name(s); Wheels will do that for you.</description>
						</argument>
					
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>The properties you want to set on the object (can also be passed in as named arguments).</description>
						</argument>
					
						<argument name="reload">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Set to `true` to force Wheels to query the database even though an identical query may have been run in the same request. (The default in Wheels is to get the second query from the request-level cache.)</description>
						</argument>
					
						<argument name="validate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to skip validations for this operation.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
						<argument name="includeSoftDeletes">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>You can set this argument to `true` to include soft-deleted records in the results.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="updateProperties">
			<returntype>boolean</returntype>
			<description>Updates all the properties from the `properties` argument or other named arguments. If the object is invalid, the save will fail and `false` will be returned.</description>
			<examples><![CDATA[<!--- Sets the `new` property to `1` through `updateProperties()` --->
<cfset product = model("product").findByKey(56)>
<cfset product.updateProperties(new=1)>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>struct</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Struct containing key/value pairs with properties and associated values that need to be updated globally.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="validate">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to skip validations for this operation.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="updateProperty">
			<returntype>boolean</returntype>
			<description>Updates a single property and saves the record without going through the normal validation procedure. This is especially useful for boolean flags on existing records.</description>
			<examples><![CDATA[<!--- Sets the `new` property to `1` through updateProperty() --->
<cfset product = model("product").findByKey(56)>
<cfset product.updateProperty("new", 1)>]]></examples>
			<arguments>
				
						<argument name="property">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the property to update the value for globally.</description>
						</argument>
					
						<argument name="value">
							<type>any</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Value to set on the given property globally.</description>
						</argument>
					
						<argument name="parameterize">
							<type>any</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `true` to use `cfqueryparam` on all columns, or pass in a list of property names to use `cfqueryparam` on those only.</description>
						</argument>
					
						<argument name="transaction">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[runtime expression]</defaultvalue>
							<description>Set this to `commit` to update the database when the save has completed, `rollback` to run all the database queries but not commit them, or `none` to skip transaction handling altogether.</description>
						</argument>
					
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="URLFor">
			<returntype>string</returntype>
			<description>Creates an internal URL based on supplied arguments.</description>
			<examples><![CDATA[<!--- Create the URL for the `logOut` action on the `account` controller, typically resulting in `/account/log-out` --->
#URLFor(controller="account", action="logOut")#

<!--- Create a URL with an anchor set on it --->
#URLFor(action="comments", anchor="comment10")#

<!--- Create a URL based on a route called `products`, which expects params for `categorySlug` and `productSlug` --->
#URLFor(route="product", categorySlug="accessories", productSlug="battery-charger")#]]></examples>
			<arguments>
				
						<argument name="route">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of a route that you have configured in `config/routes.cfm`.</description>
						</argument>
					
						<argument name="controller">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the controller to include in the URL.</description>
						</argument>
					
						<argument name="action">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the action to include in the URL.</description>
						</argument>
					
						<argument name="key">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Key(s) to include in the URL.</description>
						</argument>
					
						<argument name="params">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Any additional params to be set in the query string.</description>
						</argument>
					
						<argument name="anchor">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Sets an anchor name to be appended to the path.</description>
						</argument>
					
						<argument name="onlyPath">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>If `true`, returns only the relative URL (no protocol, host name or port).</description>
						</argument>
					
						<argument name="host">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current host.</description>
						</argument>
					
						<argument name="protocol">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set this to override the current protocol.</description>
						</argument>
					
						<argument name="port">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>Set this to override the current port number.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="usesLayout">
			<returntype>void</returntype>
			<description>Used within a controller&apos;s `init()` method to specify controller- or action-specific layouts.</description>
			<examples><![CDATA[<!---
	Example 1: We want this layout to be used as the default throughout the entire
	controller, except for the myajax action
 --->
<cffunction name="init">
	<cfset usesLayout(template="myLayout", except="myajax")>
</cffunction>

<!---
	Example 2: Use a custom layout for these actions but use the default layout.cfm
	for the rest
--->
<cffunction name="init">
	<cfset usesLayout(template="myLayout", only="termsOfService,shippingPolicy")>
</cffunction>

<!--- Example 3: Define a custom method to decide which layout to display --->
<cffunction name="init">
	<cfset usesLayout("setLayout")>
</cffunction>

<cffunction name="setLayout">
	<!--- Use holiday theme for the month of December --->
	<cfif Month(Now()) eq 12>
		<cfreturn "holiday">
	<!--- Otherwise, use default layout by returning `true` --->
	<cfelse>
		<cfreturn true>
	</cfif>
</cffunction>]]></examples>
			<arguments>
				
						<argument name="template">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name of the layout template or method name you want to use</description>
						</argument>
					
						<argument name="ajax">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of the layout template you want to use for AJAX requests</description>
						</argument>
					
						<argument name="except">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of actions that SHOULD NOT get the layout</description>
						</argument>
					
						<argument name="only">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of action that SHOULD ONLY get the layout</description>
						</argument>
					
						<argument name="useDefault">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>When specifying conditions or a method, pass `true` to use the default `layout.cfm` if none of the conditions are met</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="valid">
			<returntype>boolean</returntype>
			<description>Runs the validation on the object and returns `true` if it passes it. Wheels will run the validation process automatically whenever an object is saved to the database, but sometimes it&apos;s useful to be able to run this method to see if the object is valid without saving it to the database.</description>
			<examples><![CDATA[<!--- Check if a user is valid before proceeding with execution --->
<cfset user = model("user").new(params.user)>
<cfif user.valid()>
	<!--- Do something here --->
</cfif>]]></examples>
			<arguments>
				
						<argument name="callbacks">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>true</defaultvalue>
							<description>Set to `false` to disable callbacks for this operation.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called to validate objects before they are saved.</description>
			<examples><![CDATA[<cffunction name="init">
	<!--- Register the `checkPhoneNumber` method below to be called to validate objects before they are saved --->
	<cfset validate("checkPhoneNumber")>
</cffunction>

<cffunction name="checkPhoneNumber">
	<!--- Make sure area code is `614` --->
	<cfreturn Left(this.phoneNumber, 3) is "614">
</cffunction>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names to call. (Can also be called with the `method` argument.)</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validateOnCreate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called to validate new objects before they are inserted.</description>
			<examples><![CDATA[<cffunction name="init">
	<!--- Register the `checkPhoneNumber` method below to be called to validate new objects before they are inserted --->
	<cfset validateOnCreate("checkPhoneNumber")>
</cffunction>

<cffunction name="checkPhoneNumber">
	<!--- Make sure area code is `614` --->
	<cfreturn Left(this.phoneNumber, 3) is "614">
</cffunction>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names to call. (Can also be called with the `method` argument.)</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validateOnUpdate">
			<returntype>void</returntype>
			<description>Registers method(s) that should be called to validate existing objects before they are updated.</description>
			<examples><![CDATA[<cffunction name="init">
	<!--- Register the `check` method below to be called to validate existing objects before they are updated --->
	<cfset validateOnUpdate("checkPhoneNumber")>
</cffunction>

<cffunction name="checkPhoneNumber">
	<!--- Make sure area code is `614` --->
	<cfreturn Left(this.phoneNumber, 3) is "614">
</cffunction>]]></examples>
			<arguments>
				
						<argument name="methods">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Method name or list of method names to call. (Can also be called with the `method` argument.)</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesConfirmationOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property also has an identical confirmation value. (This is common when having a user type in their email address a second time to confirm, confirming a password by typing it a second time, etc.) The confirmation value only exists temporarily and never gets saved to the database. By convention, the confirmation property has to be named the same as the property with &quot;Confirmation&quot; appended at the end. Using the password example, to confirm our `password` property, we would create a property called `passwordConfirmation`.</description>
			<examples><![CDATA[<!--- Make sure that the user has to confirm their password correctly the first time they register (usually done by typing it again in a second form field) --->
<cfset validatesConfirmationOf(property="password", when="onCreate", message="Your password and its confirmation do not match. Please try again.")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] should match confirmation</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesExclusionOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property does not exist in the supplied list.</description>
			<examples><![CDATA[<!--- Do not allow "PHP" or "Fortran" to be saved to the database as a cool language --->
<cfset validatesExclusionOf(property="coolLanguage", list="php,fortran", message="Haha, you can not be serious. Try again, please.")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="list">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Single value or list of values that should not be allowed.</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] is reserved</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="allowBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>If set to `true`, validation will be skipped if the property value is an empty string or doesn&apos;t exist at all. This is useful if you only want to run this validation after it passes the @validatesPresenceOf test, thus avoiding duplicate error messages if it doesn&apos;t.</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesFormatOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property is formatted correctly by matching it against a regular expression using the `regEx` argument and/or against a built-in CFML validation type using the `type` argument (`creditcard`, `date`, `email`, etc.).</description>
			<examples><![CDATA[<!--- Make sure that the user has entered a correct credit card --->
<cfset validatesFormatOf(property="cc", type="creditcard")>

<!--- Make sure that the user has entered an email address ending with the `.se` domain when the `ipCheck()` method returns `true`, and it's not Sunday. Also supply a custom error message that overrides the Wheels default one --->
<cfset validatesFormatOf(property="email", regEx="^.*@.*.se$", if="ipCheck()", unless="DayOfWeek() IS 1", message="Sorry, you must have a Swedish email address to use this website.")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="regEx">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Regular expression to verify against.</description>
						</argument>
					
						<argument name="type">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>One of the following types to verify against: `creditcard`, `date`, `email`, `eurodate`, `guid`, `social_security_number`, `ssn`, `telephone`, `time`, `URL`, `USdate`, `UUID`, `variableName`, `zipcode` (will be passed through to your CFML engine&apos;s `IsValid()` function).</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] is invalid</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="allowBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>If set to `true`, validation will be skipped if the property value is an empty string or doesn&apos;t exist at all. This is useful if you only want to run this validation after it passes the @validatesPresenceOf test, thus avoiding duplicate error messages if it doesn&apos;t.</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesInclusionOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property exists in the supplied list.</description>
			<examples><![CDATA[<!--- Make sure that the user selects either "Wheels" or "Rails" as their framework --->
<cfset validatesInclusionOf(property="frameworkOfChoice", list="wheels,rails", message="Please try again, and this time, select a decent framework!")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="list">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>List of allowed values.</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] is not included in the list</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="allowBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>If set to `true`, validation will be skipped if the property value is an empty string or doesn&apos;t exist at all. This is useful if you only want to run this validation after it passes the @validatesPresenceOf test, thus avoiding duplicate error messages if it doesn&apos;t.</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesLengthOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property matches the length requirements supplied. Use the `exactly`, `maximum`, `minimum` and `within` arguments to specify the length requirements.</description>
			<examples><![CDATA[<!--- Make sure that the `firstname` and `lastName` properties are not more than 50 characters and use square brackets to dynamically insert the property name when the error message is displayed to the user. (The `firstName` property will be displayed as "first name".) --->
<cfset validatesLengthOf(properties="firstName,lastName", maximum=50, message="Please shorten your [property] please. 50 characters is the maximum length allowed.")>

<!--- Make sure that the `password` property is between 4 and 15 characters --->
<cfset validatesLengthOf(property="password", within="4,20", message="The password length must be between 4 and 20 characters.")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] is the wrong length</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="allowBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>If set to `true`, validation will be skipped if the property value is an empty string or doesn&apos;t exist at all. This is useful if you only want to run this validation after it passes the @validatesPresenceOf test, thus avoiding duplicate error messages if it doesn&apos;t.</description>
						</argument>
					
						<argument name="exactly">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>The exact length that the property value must be.</description>
						</argument>
					
						<argument name="maximum">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>The maximum length that the property value can be.</description>
						</argument>
					
						<argument name="minimum">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>0</defaultvalue>
							<description>The minimum length that the property value can be.</description>
						</argument>
					
						<argument name="within">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>A list of two values (minimum and maximum) that the length of the property value must fall within.</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesNumericalityOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property is numeric.</description>
			<examples><![CDATA[<!--- Make sure that the score is a number with no decimals but only when a score is supplied. (Tetting `allowBlank` to `true` means that objects are allowed to be saved without scores, typically resulting in `NULL` values being inserted in the database table) --->
<cfset validatesNumericalityOf(property="score", onlyInteger=true, allowBlank=true, message="Please enter a correct score.")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] is not a number</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="allowBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>If set to `true`, validation will be skipped if the property value is an empty string or doesn&apos;t exist at all. This is useful if you only want to run this validation after it passes the @validatesPresenceOf test, thus avoiding duplicate error messages if it doesn&apos;t.</description>
						</argument>
					
						<argument name="onlyInteger">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Specifies whether the property value must be an integer.</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
						<argument name="odd">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be an odd number.</description>
						</argument>
					
						<argument name="even">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be an even number.</description>
						</argument>
					
						<argument name="greaterThan">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be greater than the supplied value.</description>
						</argument>
					
						<argument name="greaterThanOrEqualTo">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be greater than or equal the supplied value.</description>
						</argument>
					
						<argument name="equalTo">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be equal to the supplied value.</description>
						</argument>
					
						<argument name="lessThan">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be less than the supplied value.</description>
						</argument>
					
						<argument name="lessThanOrEqualTo">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Specifies whether or not the value must be less than or equal the supplied value.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesPresenceOf">
			<returntype>void</returntype>
			<description>Validates that the specified property exists and that its value is not blank.</description>
			<examples><![CDATA[<!--- Make sure that the user data can not be saved to the database without the `emailAddress` property. (It must exist and not be an empty string) --->
<cfset validatesPresenceOf("emailAddress")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] can't be empty</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="validatesUniquenessOf">
			<returntype>void</returntype>
			<description>Validates that the value of the specified property is unique in the database table. Useful for ensuring that two users can&apos;t sign up to a website with identical screen names for example. When a new record is created, a check is made to make sure that no record already exists in the database with the given value for the specified property. When the record is updated, the same check is made but disregarding the record itself.</description>
			<examples><![CDATA[<!--- Make sure that two users with the same screen name won't ever exist in the database (although to be 100% safe, you should consider using database locking as well) --->
<cfset validatesUniquenessOf(property="username", message="Sorry, that username is already taken.")>

<!--- Same as above but allow identical user names as long as they belong to a different account --->
<cfset validatesUniquenessOf(property="username", scope="accountId")>]]></examples>
			<arguments>
				
						<argument name="properties">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Name of property or list of property names to validate against (can also be called with the `property` argument).</description>
						</argument>
					
						<argument name="message">
							<type>string</type>
							<required>0</required>
							<defaultvalue>[property] has already been taken</defaultvalue>
							<description>Supply a custom error message here to override the built-in one.</description>
						</argument>
					
						<argument name="when">
							<type>string</type>
							<required>0</required>
							<defaultvalue>onSave</defaultvalue>
							<description>Pass in `onCreate` or `onUpdate` to limit when this validation occurs (by default validation will occur on both create and update, i.e. `onSave`).</description>
						</argument>
					
						<argument name="allowBlank">
							<type>boolean</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>If set to `true`, validation will be skipped if the property value is an empty string or doesn&apos;t exist at all. This is useful if you only want to run this validation after it passes the @validatesPresenceOf test, thus avoiding duplicate error messages if it doesn&apos;t.</description>
						</argument>
					
						<argument name="scope">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>One or more properties by which to limit the scope of the uniqueness constraint.</description>
						</argument>
					
						<argument name="condition">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `true` validation will run).</description>
						</argument>
					
						<argument name="unless">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String expression to be evaluated that decides if validation will be run (if the expression returns `false` validation will run).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="verificationChain">
			<returntype>array</returntype>
			<description>Returns an array of all the verifications set on this controller in the order in which they will be executed.</description>
			<examples><![CDATA[<!--- Get verification chain, remove the first item, and set it back --->
<cfset myVerificationChain = verificationChain()>
<cfset ArrayDeleteAt(myVerificationChain, 1)>
<cfset setVerificationChain(myVerificationChain)>]]></examples>
			<arguments>
				
			</arguments>
		</function>
	
		<function name="verifies">
			<returntype>void</returntype>
			<description>Instructs Wheels to verify that some specific criterias are met before running an action.</description>
			<examples><![CDATA[<!--- Tell Wheels to verify that the `handleForm` action is always a `POST` request when executed --->
<cfset verifies(only="handleForm", post=true)>

<!--- Make sure that the edit action is a `GET` request, that `userId` exists in the `params` struct, and that it's an integer --->
<cfset verifies(only="edit", get=true, params="userId", paramsTypes="integer")>

<!--- Just like above, only this time we want to redirect the visitor to the index page of the controller if the request is invalid and show an error in The Flash --->
<cfset verifies(only="edit", get=true, params="userId", paramsTypes="integer", handler="index", error="Invalid userId")>]]></examples>
			<arguments>
				
						<argument name="only">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of action names to limit this verification to.</description>
						</argument>
					
						<argument name="except">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of action names to exclude this verification from.</description>
						</argument>
					
						<argument name="post">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `true` to verify that this is a `POST` request.</description>
						</argument>
					
						<argument name="get">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `true` to verify that this is a `GET` request.</description>
						</argument>
					
						<argument name="ajax">
							<type>any</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Set to `true` to verify that this is an AJAX request.</description>
						</argument>
					
						<argument name="cookie">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Verify that the passed in variable name exists in the `cookie` scope.</description>
						</argument>
					
						<argument name="session">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Verify that the passed in variable name exists in the `session` scope.</description>
						</argument>
					
						<argument name="params">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Verify that the passed in variable name exists in the `params` struct.</description>
						</argument>
					
						<argument name="handler">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>Pass in the name of a function that should handle failed verifications. The default is to just abort the request when a verification fails.</description>
						</argument>
					
						<argument name="cookieTypes">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of types to check each listed `cookie` value against (will be passed through to your CFML engine&apos;s `IsValid` function).</description>
						</argument>
					
						<argument name="sessionTypes">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of types to check each list `session` value against (will be passed through to your CFML engine&apos;s `IsValid` function).</description>
						</argument>
					
						<argument name="paramsTypes">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>List of types to check each `params` value against (will be passed through to your CFML engine&apos;s `IsValid` function).</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="wordTruncate">
			<returntype>string</returntype>
			<description>Truncates text to the specified length of words and replaces the remaining characters with the specified truncate string (which defaults to &quot;...&quot;).</description>
			<examples><![CDATA[#wordTruncate(text="Wheels is a framework for ColdFusion", length=4)#
-> Wheels is a framework...

#truncate(text="Wheels is a framework for ColdFusion", truncateString=" (more)")#
-> Wheels is a framework for (more)]]></examples>
			<arguments>
				
						<argument name="text">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>The text to truncate.</description>
						</argument>
					
						<argument name="length">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>5</defaultvalue>
							<description>Number of words to truncate the text to.</description>
						</argument>
					
						<argument name="truncateString">
							<type>string</type>
							<required>0</required>
							<defaultvalue>...</defaultvalue>
							<description>String to replace the last characters with.</description>
						</argument>
					
			</arguments>
		</function>
	
		<function name="yearSelectTag">
			<returntype>string</returntype>
			<description>Builds and returns a string containing a select form control for a range of years based on the supplied `name`.</description>
			<examples><![CDATA[<!--- View code --->
<cfoutput>
    #yearSelectTag(name="yearOfBirthday", selected=params.yearOfBirthday)#
</cfoutput>

<!--- Only allow selection of year to be for the past 50 years, minimum being 18 years ago --->
<cfset fiftyYearsAgo = Now() - 50>
<cfset eighteenYearsAgo = Now() - 18>
<cfoutput>
	#yearSelectTag(name="yearOfBirthday", selected=params.yearOfBirthday, startYear=fiftyYearsAgo, endYear=eighteenYearsAgo)#
</cfoutput>]]></examples>
			<arguments>
				
						<argument name="name">
							<type>string</type>
							<required>1</required>
							<defaultvalue></defaultvalue>
							<description>Name to populate in tag&apos;s `name` attribute.</description>
						</argument>
					
						<argument name="selected">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The year that should be selected initially.</description>
						</argument>
					
						<argument name="startYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2005</defaultvalue>
							<description>First year in select list.</description>
						</argument>
					
						<argument name="endYear">
							<type>numeric</type>
							<required>0</required>
							<defaultvalue>2015</defaultvalue>
							<description>Last year in select list.</description>
						</argument>
					
						<argument name="includeBlank">
							<type>any</type>
							<required>0</required>
							<defaultvalue>false</defaultvalue>
							<description>Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, &quot;- Select One -&quot;).</description>
						</argument>
					
						<argument name="label">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>The label text to use in the form control.</description>
						</argument>
					
						<argument name="labelPlacement">
							<type>string</type>
							<required>0</required>
							<defaultvalue>around</defaultvalue>
							<description>Whether to place the label `before`, `after`, or wrapped `around` the form control.</description>
						</argument>
					
						<argument name="prepend">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="append">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="prependToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to prepend to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
						<argument name="appendToLabel">
							<type>string</type>
							<required>0</required>
							<defaultvalue></defaultvalue>
							<description>String to append to the form control&apos;s `label`. Useful to wrap the form control with HTML tags.</description>
						</argument>
					
			</arguments>
		</function>
	
</functions> 
