gSo*_*rry 3 uri controller request extbase uribuilder
如何在extbase扩展控制器中获取当前页面的uri?如果我需要通过电子邮件发送当前的uri或将其保存到数据库供以后使用或统计.
gSo*_*rry 10
你可以使用这一行:
$this->uriBuilder->getRequest()->getRequestUri()
Run Code Online (Sandbox Code Playgroud)
例:
public function newAction(Tx_YourExtension_Domain_Model_YourModel $yourModel = NULL) {
$this->view->assign('yourModel', $yourModel);
$this->view->assign('url', $this->uriBuilder->getRequest()->getRequestUri());
}
Run Code Online (Sandbox Code Playgroud)
虽然以下更有效..
$this->controllerContext
->getUriBuilder()
->reset()
->setTargetPageUid(int PAGE_UID)
->setArguments(array ARRAY_VARIABLE_OF_ADDITIONAL_ARGUMENTS)
->buildFrontendUri();
Run Code Online (Sandbox Code Playgroud)
要么
包含UriBuilder对象
/**
* UriBuilder
*
* @var \TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
* @inject
*/
protected $uriBuilder = NULL;
Run Code Online (Sandbox Code Playgroud)
使用以下方式获取URL
$this->uriBuilder
->reset()
->setTargetPageUid(int PAGE_UID)
->setArguments(array ARRAY_VARIABLE_OF_ADDITIONAL_ARGUMENTS)
->buildFrontendUri();
Run Code Online (Sandbox Code Playgroud)
对于Base Uri
$this->request->getBaseUri()
OR
$GLOBALS['TSFE']->baseUrl
Run Code Online (Sandbox Code Playgroud)