Using the request helper without specifying a key should return the entire request body.
This commit is contained in:
parent
10ee3401e4
commit
c390a6552a
2 changed files with 25 additions and 7 deletions
|
@ -45,12 +45,12 @@ class EA_Input extends CI_Input {
|
|||
/**
|
||||
* Fetch an item from JSON data.
|
||||
*
|
||||
* @param string $index Index for item to be fetched from the JSON payload.
|
||||
* @param string|null $index Index for item to be fetched from the JSON payload.
|
||||
* @param bool|false $xss_clean Whether to apply XSS filtering
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function json(string $index, bool $xss_clean = FALSE)
|
||||
public function json(string $index = NULL, bool $xss_clean = FALSE)
|
||||
{
|
||||
/** @var EA_Controller $CI */
|
||||
$CI = &get_instance();
|
||||
|
@ -69,8 +69,19 @@ class EA_Input extends CI_Input {
|
|||
|
||||
$payload = json_decode($input_stream, TRUE);
|
||||
|
||||
$value = $payload[$index] ?? NULL;
|
||||
if ($xss_clean)
|
||||
{
|
||||
foreach ($payload as $name => $value)
|
||||
{
|
||||
$payload[$name] = $CI->security->xss_clean($value);
|
||||
}
|
||||
}
|
||||
|
||||
return $value && $xss_clean ? $CI->security->xss_clean($value) : $value;
|
||||
if (empty($index))
|
||||
{
|
||||
return $payload;
|
||||
}
|
||||
|
||||
return $payload[$index] ?? NULL;;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,20 +21,27 @@ if ( ! function_exists('request'))
|
|||
* $first_name = request('first_name', 'John');
|
||||
*
|
||||
* @param string|null $key Request variable key.
|
||||
* @param mixed $default Default value in case the requested variable has no value.
|
||||
* @param mixed|null $default Default value in case the requested variable has no value.
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
function request(string $key, $default = NULL)
|
||||
function request(string $key = NULL, $default = NULL)
|
||||
{
|
||||
/** @var EA_Controller $CI */
|
||||
$CI = &get_instance();
|
||||
|
||||
if (empty($key))
|
||||
{
|
||||
throw new InvalidArgumentException('The $key argument cannot be empty.');
|
||||
$payload = $CI->input->post_get($key);
|
||||
|
||||
if (empty($payload))
|
||||
{
|
||||
$payload = $CI->input->json($key);
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
return $CI->input->post_get($key) ?? $CI->input->json($key) ?? $default;
|
||||
|
|
Loading…
Reference in a new issue