How should named and unnamed parameters be passed and referenced in custom controllers?
Environment:
Oracle B2C Service, all supported versions
Resolution:
When building a custom controller, you can either create a new one or add a function to the existing controller cp/customer/development/controllers/AjaxCustom.php.
Parameters can be passed when calling the controller as unnamed parameters or named parameters.
1. Unnamed parameters:
The the following URL would pass an unnamed parameters with the value of 42 when calling the function 'getDataForId' in the controller named 'data':
http://sitename/cc/data/getDataForId/42
You would use the unnamed parameter in the controller like this:
function getDataForId($unnamedParam)
{
// use the $unnamedParam in your code
}
2. Named parameters:
The following URL would pass a parameter named "meaning" and its associated value of 42 when calling the function 'getDataForId' in the controller named 'data':
http://sitename/cc/data/getDataForId/meaning/42
You would use the named parameter in the controller ("data", in example above) like this:
function getDataForId()
{
echo getUrlParm('meaning');
}
You would then reference the parameter like this:
function getDataForId()
{
$namedParam = $this->input->post('meaning');
// use the $namedParam in your code
}
For more information please consult the technical documentation linked below:
Answer ID 5169: Technical Documentation and Sample Code