Comment on page
Building Routable Links
In your views, layouts and handlers you can use the
buildLink
method provided by the request context object (event) to build routable links in your application./**
* Builds links to events or URL Routes
*
* @to The event or route path you want to create the link to
* @queryString The query string to append which can be a regular query string string, or a struct of name-value pairs
* @translate Translate between . to / depending on the SES mode on to and queryString arguments. Defaults to true.
* @ssl Turn SSl on/off on URL creation, by default is SSL is enabled, we will use it.
* @baseURL If not using SES, you can use this argument to create your own base url apart from the default of index.cfm. Example: https://mysample.com/index.cfm
*/
string function buildLink(
to,
queryString = "",
boolean translate = true,
boolean ssl,
baseURL = ""
){
Just pass in the routed URL or event and it will create the appropriate routed URL for you:
<a href="#event.buildLink( 'home.about' )#">About</a>
<a href="#event.buildLink( 'user.edit.id.#user.getID()#' )#">Edit User</a>
The
queryString
argument can be a simple query string or a struct that represents the query variables to append.<a href="#event.buildLink( 'home.about', "page=2&format=simple" )#">About</a>
<a href="#event.buildLink( 'home.about', { page : 2, format: "simple" } )#">About</a>
Please note that the
to
argument can be a simple route path, but it can also be a struct. This struct is for routing to named routes. Even though we recommend to use the route()
method instead.event.buildLink( {
name : "routeName",
params : { ... }
} )
event.route( "routeName", { ... } )
The request context object (event) also has some handy methods to tell you the name or even the current route that was selected for execution:
getCurrentRouteName()
- Gives you the name of the current route, if anygetCurrentRoute()
- Gives you the currently executed routegetCurrentRoutedURL()
- Gives you the complete routed URL pattern that matched the routegetCurrentRoutedNamespace()
- Gives you the current routed namespace, if any
Last modified 1yr ago