Redirect Magento 2无法从管理控制器重定向到前端

Redirect Magento 2无法从管理控制器重定向到前端,redirect,magento2,Redirect,Magento2,我试图使用此代码重定向到前端URL,但它总是重定向到管理仪表板。我搜索并尝试了很多演示代码,但我无法让它工作。我假设所有属性都设置正确 $url= $this->_storeManager->getStore(1)->getUrl('storelocator/index/index'); $resultRedirect = $this->resultRedirectFactory->create(); $resultRedirect->setUrl($u

我试图使用此代码重定向到前端URL,但它总是重定向到管理仪表板。我搜索并尝试了很多演示代码,但我无法让它工作。我假设所有属性都设置正确

 $url= $this->_storeManager->getStore(1)->getUrl('storelocator/index/index');
 $resultRedirect = $this->resultRedirectFactory->create();
 $resultRedirect->setUrl($url);
 return $resultRedirect; 

我也有类似的问题。在我的情况下,解决办法是相当琐碎的。在url的开头添加斜杠就成功了

    $result = $this->resultRedirectFactory->create();
    // Pay attention to leading slash in url.
    $result->setUrl('/training_render/layout/onepage');
    return $result;
感谢:


以下是获取店面URL的解决方案:

/* @var \Magento\Framework\ObjectManagerInterface $objectManager */
/* @var \Magento\Store\Api\Data\StoreInterface $store */
$scopeResolver = $objectManager->create( 'Magento\Framework\Url\ScopeResolverInterface', [ 'areaCode' => \Magento\Framework\App\Area\Area::AREA_FRONTEND ] );
$url = $objectManager->create( 'Magento\Framework\Url', [ 'scopeResolver' => $scopeResolver ] )->setScope( $store )->getUrl( 'xxx/xxx/xxx', [ '_scope_to_url' => false, '_nosid' => true ] );

不要在打破DI概念时使用直接对象管理器调用。
/* @var \Magento\Framework\ObjectManagerInterface $objectManager */
/* @var \Magento\Store\Api\Data\StoreInterface $store */
$scopeResolver = $objectManager->create( 'Magento\Framework\Url\ScopeResolverInterface', [ 'areaCode' => \Magento\Framework\App\Area\Area::AREA_FRONTEND ] );
$url = $objectManager->create( 'Magento\Framework\Url', [ 'scopeResolver' => $scopeResolver ] )->setScope( $store )->getUrl( 'xxx/xxx/xxx', [ '_scope_to_url' => false, '_nosid' => true ] );