2016-10-03 103 views
1

我正在使用sylius v0.18。我想用產品展示地址前綴區域設置。前綴sylius產品使用語言環境顯示url

sylius_core: 
routing: 
    %sylius.model.product.class%: 
     field: slug 
     prefix: /p 
     defaults: 
      controller: sylius.controller.product:detailsAction 
      repository: sylius.repository.product 
      sylius: 
       template: SyliusWebBundle:Frontend/Product:show.html.twig 
       criteria: {slug: $slug} 
       permission: false 

我可以在此配置中使用靜態字作爲前綴。但它不適用於_locale。 prefix: /{_locale}/p

回答

1

我發現了一個解決方案,通過在Sylius \ Bundle \ CoreBundle \ Routing \ RouteProvider類中使用以下配置過濾getRouteCollectionForRequest方法。

sylius_core: 
routing: 
    %sylius.model.product.class%: 
     field: slug 
     prefix: /{_locale}/p 
     defaults: 
      controller: sylius.controller.product:detailsAction 
      repository: sylius.repository.product 
      sylius: 
       template: SyliusWebBundle:Frontend/Product:show.html.twig 
       criteria: {slug: $slug} 
       permission: false 

 

parameters: 
    sylius.route_provider.class: App\AppBundle\Routing\Provider\RouteProvider 

 

class RouteProvider extends BaseProvider 
    { 

     /** 
     * {@inheritdoc} 
     */ 
     public function getRouteCollectionForRequest(Request $request) 
     { 
     //Overide this method to match the url with _locale 
     } 
相關問題