簡體   English   中英

Shopware 6: 如何在自定義插件 controller 中獲取動態 url?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM