gpt4 book ai didi

TYPO3 扩展 - 如果未设置记录或不可用,则重定向到显示操作中的另一个页面

转载 作者:行者123 更新时间:2023-12-03 09:02:12 24 4
gpt4 key购买 nike

当有人访问详情页面但没有记录或记录不可用时,如何重定向到另一个页面?

我有详细记录,例如

domain.com/abc/ABC1234

有人进来时

domain.com/abc/

...我得到:

Uncaught TYPO3 Exception
#1298012500: Required argument "record" is not set for Vendor\Extension\Controller\ActionController->show. (More information)

TYPO3\CMS\Extbase\Mvc\Controller\Exception\RequiredArgumentMissingException thrown in file
/is/htdocs/www/typo3_src-8.7.11/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php in line 425.

...在这种情况下我希望它重定向到:

domain.com/other-page/

...如果特定记录不可用,我也需要它。
...如何做到这一点?

/**
* action show
*
* @param \Action $record
* @return void
*/
public function showAction(Action $record) {

$this->view->assign('record', $record);

}

以下是一些示例 TYPO3 Extbase - redirect to pid ...但不确定如何实现

编辑:有效的是......

/**
* action show
*
* @param \Action $record
* @return void
*/
public function showAction(Action $record=null) {

if ($record === null) {
$pageUid = 75;
$uriBuilder = $this->uriBuilder;
$uri = $uriBuilder
->setTargetPageUid($pageUid)
->build();
$this->redirectToUri($uri, 0, 404);
} else {
$this->view->assign('record', $record);

}

}

最佳答案

redirect 方法需要一个操作和 Controller 参数。所以你的重定向代码是错误的。

$this->redirect($actionName, $controllerName = NULL, $extensionName = NULL, array $arguments = NULL, $pageUid = NULL, $delay = 0, $statusCode = 303); 

要重定向到 PageUID,您需要使用 uriBuilder 和 redirectToUri 方法。请参阅here举个例子。

关于TYPO3 扩展 - 如果未设置记录或不可用,则重定向到显示操作中的另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49403569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com