В Joomla! 2.5.x Я мог бы просто бежать, JRequest::get('post');
но JRequest
в Joomla это устарело! 3.х Я должен использовать 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
объекта.
Ответы:
Это путь, вы получите объект JInput и можете использовать его как JRequest
Фильтр может быть 'int', 'cmd' или многими другими - полный список можно найти в этой функции: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla/filter/input .php # L138
Если вам нужен только массив, то вы можете сделать
Но вы должны избегать этого стиля доступа к пользовательским данным без фильтрации.
источник
$_POST
не зная фактически имен переменных, которые мне нужно получить, поэтому использование такогоJInput
объекта во многих случаях бесполезно. Тем не менее, хороший ответ.$app->input->post->getArray();
действителен только на Joomla 3.2.0 и более поздних версиях. И в любой более ранней версии (в том числе 2.5) вы должны использовать$app->input->getArray($_POST)
Кажется, еще один способ сделать это - просто передать пустой массив:
Это извлечет все
JInput
данные из var, как будто вы обращаетесь к$_REQUEST
супер.Это не работает в Joomla! Версия 2.5.x
JInput
хотя.источник
Надеюсь, это сработает,
JRequest :: Get ( 'сообщение');
Это поможет вам получить данные из эквивалента $ _POST в PHP.
источник