W Joomla! 2.5.x Mógłbym po prostu biec, JRequest::get('post');
ale widzę, że JRequest
jest to przestarzałe w Joomla! 3.x Powinienem użyć JInput
.
W tej chwili używam tego kodu, aby uzyskać całość $_POST
:
$app = JFactory::getApplication();
$postData = $app->input->getArray(array_flip(array_keys($_POST)));
Ale wydaje się to dość kłopotliwe i napotykam problemy, jeśli zastosuję je w połączeniu z $app->input->set();
, myślę, że byłby lepszy sposób?
Kiedy szukałem tego wcześniej, znalazłem ludzi, którzy mówili, że możesz po prostu biegać
$app = JFactory::getApplication();
$postData = $app->input->post;
Ale kiedy to wypróbowałem, po prostu dostałem instancję JInput
obiektu.
Odpowiedzi:
Jest to dobra droga, otrzymasz obiekt JInput i możesz go używać jak JRequest
Filtr może mieć postać „int”, „cmd” lub wiele innych - pełną listę można znaleźć w tej funkcji: https://github.com/joomla/joomla-cms/blob/a3df15f1ddad6d9051d53f939b6afd2f5fca60b7/libraries/joomla/filter/input .php # L138
Jeśli chcesz tylko tablicę, możesz to zrobić
Ale należy unikać tego stylu uzyskiwania dostępu do danych użytkownika bez filtrowania.
źródło
$_POST
nie znając nazw zmiennych, które muszę uzyskać, dlatego używanie takiegoJInput
obiektu w wielu przypadkach nie jest przydatne. Jednak wciąż dobra odpowiedź.$app->input->post->getArray();
tylko wersji Joomla 3.2.0 i nowszych. I we wszystkich wcześniejszych wersjach (w tym 2.5) musisz używać$app->input->getArray($_POST)
Wydaje się, że innym sposobem na osiągnięcie tego jest po prostu przekazanie pustej tablicy:
Spowoduje to odzyskanie wszystkiego w
JInput
danych var tak, jakbyś miał dostęp do$_REQUEST
super.To nie działa w Joomla! Wersja 2.5.x od
JInput
chociaż.źródło
Mam nadzieję, że to zadziała,
JRequest :: get ('post');
Pomoże Ci to pobrać dane z ekwiwalentu $ _POST w PHP.
źródło