it-swarm-es.tech

¿Cuál es la forma correcta de obtener todo el $ _POST?

En Joomla! 2.5.x Podría simplemente ejecutar JRequest::get('post'); pero ver como JRequest está en desuso en Joomla! 3.x Debería usar JInput.

En este momento, este es el código que estoy usando para obtener todo el _$_POST_:

_$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));
_

Pero esto parece bastante engorroso y me encuentro con problemas si se usa junto con $app->input->set(); ¿Pensaría que habría una mejor manera?

Al buscar esto antes, he encontrado personas que dicen que simplemente puedes ejecutar

_$app = JFactory::getApplication();
$postData = $app->input->post;
_

Pero cuando probé esto, simplemente obtuve una instancia del objeto JInput.

26
Spunkie
$app = JFactory::getApplication();
$postData = $app->input->post;

Es el camino a seguir, obtendrá un objeto JInput y puede usarlo como JRequest

$var = $postData->get('varname', 'defaultvalue', 'filter');

El filtro podría ser 'int', 'cmd' o muchos otros; la lista completa se puede encontrar en esta función: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla /filter/input.php#L138

Si solo desea la matriz, entonces puede hacer

$array = $app->input->post->getArray();

Pero debe evitar este estilo de acceder a los datos del usuario sin filtrar.

31
Harald Leithner

Parece que otra forma de lograr esto es simplemente pasar una matriz vacía:

$app = JFactory::getApplication();
$postData = $app->input->getArray(array());

Esto recuperará todo en la JInput data var como si estuviera accediendo a la $_REQUEST súper.

Esto no funciona en Joomla! 2.5.x versión de JInput aunque.

3
Spunkie