Accept GET or POST parameters
To map actions that receive parameters, pass an array of RequestParameter objects via the parameters key when creating Request object. For example, mapping an action that receives a userId parameter via GET would look like this:
...
$e->Actions->mapAction([
"viewUser",
new \Cherrycake\Actions\ActionHtml([
"moduleType" => ACTION_MODULE_TYPE_APP,
"moduleName" => "Users",
"methodName" => "viewUser",
"request" => new \Cherrycake\Actions\Request([
"pathComponents" => [
new \Cherrycake\Actions\RequestPathComponent([
"type" => REQUEST_PATH_COMPONENT_TYPE_FIXED,
"string" => "user"
])
],
"parameters" => [
new \Cherrycake\Actions\RequestParameter([
"type" => REQUEST_PARAMETER_TYPE_GET,
"name" => "userId",
"securityRules" => [
SECURITY_RULE_TYPICAL_ID
]
])
]
])
])
]);
...This action will be triggered when URLs like /user?userId=381 are requested. You can then get the userId value just like we did above for dynamic paths:
function viewUser($request) {
echo "The requested user id ".$request->userId;
}Check out the Security module to learn more about the
securityRulesandfiltersyou can configure when mapping actions withparameters.
See this example working in the Cherrycake documentation examples site.
Last updated
Was this helpful?