Prestashop - вызов статического метода из smarty tpl

Я использую prestashop 1.7, и у меня есть файл в override / classes, который называется Cart.php, который имеет функцию, аналогичную этой, его цель - вернуть массив объектов, код может быть примерно таким

<?php

class Cart расширяет CartCore {

public static function getADXFromProducts($id){


    $adxProducts=array();
    return $adxProducts;
}

}

У меня проблема из умного шаблона "Tpl", где я пытаюсь таким образом вызвать статический метод.

На экране я не получаю никаких ошибок, но если я активирую xdebug в указанном выше файле переопределения, я не вижу, чтобы он вводил метод.

  {assign var=bookProducts value={Cart::getADXFromProducts($cart.id)}}

Спасибо

следует использовать {assign var=bookProducts value=Cart::getADXFromProducts($cart.id)}

sadlyblue 11.04.2018 12:59
1
1
1 927
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Сначала активируйте режим отладки в Prestashop в панели администратора. Расширенные параметры -> Производительность -> Режим отладки. Это поможет вам увидеть любую проблему, если она у вас есть

Во-вторых, убедитесь, что вы поместили свой файл переопределения по правильному пути, он должен быть 'переопределить / классы / Cart.php'

В-третьих, удалите файл приложение / кеш / dev / class_index.php, он будет сгенерирован автоматически и все маршруты будут сгенерированы заново.

Наконец, если вы хотите получить массив в качестве ответа, вам нужно определить свою переменную таким образом

{assign var='bookProducts' value=Cart::getADXFromProducts($cart.id)}

по-вашему {assign var=bookProducts value={Cart::getADXFromProducts($cart.id)}} будет работать только со строками или числами

Статические функции можно вызывать прямо в файлах Smarty, например:

{Cart::getADXFromProducts($cart.id)}

Но это не рекомендуется, вы должны вызвать функцию в файле класса PHP, а затем использовать значение в Smarty.

$this->context->smarty->assign('bookProducts', Cart::getADXFromProducts($cart.id));

Другие вопросы по теме