Каков правильный способ получить весь $ _POST?
В Joomla! 2.5.x Я мог бы просто запустить JRequest::get('post');
, но просмотр как JRequest
устарел в Joomla! 3.x Я должен использовать JInput
.
В этот момент это код, который я использую для получения всего $_POST
:
$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));
Но это кажется довольно громоздким, и я сталкиваюсь с проблемами при использовании в сочетании с $app->input->set();
Я думаю, что было бы лучше?
При поиске этого, прежде чем я обнаружил, что люди говорят, что вы можете просто запустить
$app = JFactory::getApplication();
$postData = $app->input->post;
Но когда я это пробовал, я просто получил экземпляр объекта JInput
.
4 ответа
$app = JFactory::getApplication();
$postData = $app->input->post;
Это путь, вы получите объект JInput и можете использовать его как JRequest
$var = $postData->get('varname', 'defaultvalue', 'filter');
Фильтр может быть «int», «cmd» или многими другими. Полный список можно найти в этой функции: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla/filter/input.php#L138
Если вам нужен только массив, вы можете сделать
$array = $app->input->post->getArray();
Но вы должны избегать этого стиля доступа к пользовательским данным без фильтрации.
попробовать
JFactory::getApplication()->input->post->getArray()
Кажется, еще один способ выполнить это - просто передать пустой массив:
$app = JFactory::getApplication();
$postData = $app->input->getArray(array());
Это приведет к восстановлению всего в JInput
данных var, как если бы вы обращались к $_REQUEST
super.
Это не работает в Joomla! 2.5.x версия JInput
хотя.
Надеюсь, что это сработает,
JRequest :: Get ( 'сообщение');
Это поможет вам получить данные из эквивалента $ _POST в PHP.