4

How to get uri of current page in extbase extension controller? In case I need to send current uri via email or save it to database for later use or statistics.

gSorry
  • 1,254
  • 2
  • 21
  • 29

2 Answers2

13

You can use this line:

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

Example:

public function newAction(Tx_YourExtension_Domain_Model_YourModel $yourModel = NULL) {
    $this->view->assign('yourModel', $yourModel);
    $this->view->assign('url', $this->uriBuilder->getRequest()->getRequestUri());
}
gSorry
  • 1,254
  • 2
  • 21
  • 29
6

Though following is more efficient..

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

OR

Include UriBuilder object

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

Get URL using following

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

For Base Uri

$this->request->getBaseUri()
     OR
$GLOBALS['TSFE']->baseUrl
Mihir Bhatt
  • 3,019
  • 2
  • 37
  • 41