[英]Shopware 6 : How to get dynamic url in custom plugin controller?
商店用品 6
我是商店用品的新手。 我想要 controller 中的 base url(自定义插件)。
我试过了,但对我不起作用。
$salesChannel->getDomains()->first()->getUrl();
提前致谢
如果您只需要 controller 中的当前主机和基础 url:
use Shopware\Storefront\Framework\Routing\RequestTransformer;
use Symfony\Component\HttpFoundation\Request;
// ...
/**
* @Route(...)
*/
public function myAction(Request $request): Response
{
$host = $request->attributes->get(RequestTransformer::SALES_CHANNEL_ABSOLUTE_BASE_URL)
. $request->attributes->get(RequestTransformer::SALES_CHANNEL_BASE_URL);
// ...
}
第一:添加这个命名空间
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
第二:在这里你可以获得基地url。
$urls = [];
$salesChannelRepository = $this->container->get('sales_channel.repository');
$criteria = new Criteria();
$criteria->addAssociation('domains');
$salesChannelIds = $salesChannelRepository->search($criteria, Context::createDefaultContext());
foreach($salesChannelIds->getEntities()->getElements() as $key => $salesChannel){
foreach($salesChannel->getDomains()->getElements() as $element){
array_push($urls, $element->getUrl());
}
}
您将在$urls变量中获得 url。
如果您有权访问您应该在 controller 中拥有的请求 object,则您可以访问名为sw-storefront-url
的请求属性。 这将为您提供您所需要的:当前请求的基本 url。 另请参阅如何在 Shopware 6 店面/TWIG 中获取当前的销售渠道域?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.