4

如何在 extbase 扩展控制器中获取当前页面的 uri?如果我需要通过电子邮件发送当前 uri 或将其保存到数据库以供以后使用或统计。

4

2 回答 2

13

您可以使用此行:

$this->uriBuilder->getRequest()->getRequestUri()

例子:

public function newAction(Tx_YourExtension_Domain_Model_YourModel $yourModel = NULL) {
    $this->view->assign('yourModel', $yourModel);
    $this->view->assign('url', $this->uriBuilder->getRequest()->getRequestUri());
}
于 2013-07-30T15:43:36.773 回答
6

虽然跟随更有效..

 $this->controllerContext
  ->getUriBuilder()
  ->reset()
  ->setTargetPageUid(int PAGE_UID)
  ->setArguments(array ARRAY_VARIABLE_OF_ADDITIONAL_ARGUMENTS)
  ->buildFrontendUri();

或者

包括 UriBuilder 对象

/**
 * UriBuilder
 *
 * @var \TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
 * @inject
 */
protected $uriBuilder = NULL;

使用以下获取 URL

$this->uriBuilder
    ->reset()
    ->setTargetPageUid(int PAGE_UID)
    ->setArguments(array ARRAY_VARIABLE_OF_ADDITIONAL_ARGUMENTS)
    ->buildFrontendUri();

对于基础 Uri

$this->request->getBaseUri()
     OR
$GLOBALS['TSFE']->baseUrl
于 2014-07-29T09:02:10.387 回答