2017-09-11 15 views
0

$アクセサリーアイテムごとにカートのURLから正しく削除するにはどうすればよいですか? は、私は、テンプレートから試してみました:Prestashop 1.7:アクセサリー内のカートからURLを取り除く方法

{foreach from=$accessories item=accessory} 
    {assign var="deleteURL" value=Link::getRemoveFromCartURL($accessory.id_product,$accessory.id_product_attribute,null)} 
{/foreach} 

しかし、私はエラーを取得:

Runtime Notice: Non-static method LinkCore::getRemoveFromCartURL() should not be called statically 

コントローラ私はアクセサリー$でカートのURLから削除するためにアクセスするために変更する必要がありますか?

答えて

0

controllers/front/ProductController.phpでは、関数initContentを編集します。

$accessories = $this->product->getAccessories($this->context->language->id); 
     if (is_array($accessories)) { 
      foreach ($accessories as &$accessory) { 
       $accessory = $presenter->present(
        $presentationSettings, 
        Product::getProductProperties($this->context->language->id, $accessory, $this->context), 
        $this->context->language 
       ); 
      } 
      unset($accessory); 
     } 

$accessories = $this->product->getAccessories($this->context->language->id); if (is_array($accessories)) { foreach ($accessories as &$accessory) { $accessory = $presenter->present( $presentationSettings, Product::getProductProperties($this->context->language->id, $accessory, $this->context), $this->context->language ); $accessory['remove_from_cart_url'] = $this->context->link->getRemoveFromCartURL($accessory['id'],$accessory['id_product_attribute']); } unset($accessory); } 

にEDIT:
あなたは、コントローラを直接編集しますが、オーバーライド/コントローラ/フロント/ ProductController.phpでオーバーライドを作成するべきではありません。 ファイルがまだ作成されていない場合は、それを自分で行います。

関連する問題