Complex actions

In the previous example, the pathComponents is left to false because we wanted the action to respond to requests to the root / page. To map actions that respond to more complex routes like /about/contact, we use pathComponents to pass an array of RequestPathComponent objects representing the segments of the path.

In this example, we map an action that will respond when the /about/contact path is requested:

...
$e->Actions->mapAction([
"aboutContact",
new \Cherrycake\ActionHtml([
"moduleType" => \Cherrycake\ACTION_MODULE_TYPE_APP,
"moduleName" => "About",
"methodName" => "viewContact",
"request" => new \Cherrycake\Request([
"pathComponents" => [
new \Cherrycake\RequestPathComponent([
"type" => \Cherrycake\REQUEST_PATH_COMPONENT_TYPE_FIXED,
"string" => "about"
]),
new \Cherrycake\RequestPathComponent([
"type" => \Cherrycake\REQUEST_PATH_COMPONENT_TYPE_FIXED,
"string" => "contact"
])
]
])
])
]);
...

See RequestPathComponent::__construct to learn more about other options when setting up path components for complex routes.