Configuration Routing struct mapper
Create a route that matches a URL requiring an HTTML GET
method. We recommend only using this matcher to expose actions that display data. See post
, patch
, delete
, and put
for matchers that are appropriate for actions that change data in your database.
Name | Type | Required | Default | Description |
---|---|---|---|---|
name | string | No | Camel-case name of route to reference when build links and form actions (e.g., blogPost ). |
|
pattern | string | No | Overrides the URL pattern that will match the route. The default value is a dasherized version of name (e.g., a name of blogPost generates a pattern of blog-post ). |
|
to | string | No | Set controller##action combination to map the route to. You may use either this argument or a combination of controller and action . |
|
controller | string | No | Map the route to a given controller. This must be passed along with the action argument. |
|
action | string | No | Map the route to a given action within the controller . This must be passed along with the controller argument. |
|
package | string | No | Indicates a subfolder that the controller will be referenced from (but not added to the URL pattern). For example, if you set this to admin , the controller will be located at admin/YourController.cfc , but the URL path will not contain admin/ . |
|
on | string | No | If this route is within a nested resource, you can set this argument to member or collection . A member route contains a reference to the resource's key , while a collection route does not. |
<cfscript> mapper() // Route name: post // Example URL: /posts/my-post-title // Controller: Posts // Action: show .get(name="post", pattern="posts/[slug]", to="posts##show") // Route name: posts // Example URL: /posts // Controller: Posts // Action: index .get(name="posts", controller="posts", action="index") // Route name: authors // Example URL: /the-scribes // Controller: Authors // Action: index .get(name="authors", pattern="the-scribes", to="authors##index") // Route name: commerceCart // Example URL: /cart // Controller: commerce.Carts // Action: show .get(name="cart", to="carts##show", package="commerce") // Route name: extranetEditProfile // Example URL: /profile/edit // Controller: extranet.Profiles // Action: edit .get( name="editProfile", pattern="profile/edit", to="profiles##edit", package="extranet" ) // Example scoping within a nested resource .resources(name="users", nested=true) // Route name: activatedUsers // Example URL: /users/activated // Controller: Users // Action: activated .get(name="activated", to="users##activated", on="collection") // Route name: preferencesUsers // Example URL: /users/391/preferences // Controller: Preferences // Action: index .get(name="preferences", to="preferences##index", on="member") .end() .end(); </cfscript>