PaginateViewHelper перенаправить на страницу запроса

я использую TYPO3\Fluid\ViewHelpers\PaginateViewHelper в моем действии индекса, который перечисляет некоторые элементы. Каждый элемент имеет действия, которые выполняются на лету, поэтому после вызова и обработки действия он возвращается к действию index.

public function deleteAction(Item $item) {
$this->itemService->remove($item);
$this->redirect('index');
}

К сожалению, в этом случае меня перенаправляют на первую страницу индекса. Есть ли возможность перенаправить на страницу, где я запускаю действие удаления? Могу ли я также получить аргументы подзапроса, отправленные на PaginateController?

Я знаю, что вместо этого могу использовать вызов AJAX или написать свою собственную нумерацию страниц, но я бы хотел использовать существующее решение, если это возможно.

0

Решение

Чтобы сохранить параметры GET, вы можете использовать addQueryString = «1» в LinkViewHelper … возможно, этого уже достаточно, чтобы сохранить текущую страницу при использовании redirect () в контроллере.

В противном случае вы можете использовать UriBuilder контроллера, чтобы сгенерировать URI, включающий нужную страницу в пагинации и другие параметры, а затем использовать функцию redirectToUri (), чтобы перенаправить пользователя на желаемый URI.

https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_mvc_1_1_web_1_1_routing_1_1_uri_builder.html

0

Другие решения

Вы можете сделать что-то вроде этого

$referringRequest = $this->request->getReferringRequest();
if ($referringRequest !== null) {
$this->redirectToRequest($referringRequest);
}

Это работает только в том случае, если ссылающийся запрос отправляется с исходным запросом, как в случае с текучими формами, которые следует использовать для небезопасных запросов (POST, PUT, DELETE).

0

По вопросам рекламы [email protected]