我有付款功能
public function calculateClientCost(Transaction $transaction)
{
if ($transaction->getPaymentType() == Order::PAYMENT_TYPE_ALTERNATIVE) {
return $this->container->getParameter('commission_alternative_price');
}
if ($transaction->getPaymentType() == Order::PAYMENT_TYPE_PRICE) {
return $transaction->getPrice();
}
}
public function calculateCommission(Transaction $transaction)
{
if ($transaction->getPaymentType() == Order::PAYMENT_TYPE_ALTERNATIVE) {
return $this->container->getParameter('commission_alternative_price');
}
if ($transaction->getPaymentType() == Order::PAYMENT_TYPE_PRICE) {
return round($this->container->getParameter('commission_publisher') * $transaction->getPrice() / 100, 2);
}
}
有一个问题,我想在树枝中使用该功能。我的树枝看起来像
<span class="rab_mobile">{{ 'table.head.net_price'|trans }}:</span>
{% if t.isNormalPrice() %}
{{ t.price|localizedcurrency(currency) }}
{% else %}
<em>{{ t.alternativePayment|slice(0,15) }}</em>
{% endif %}
我想在树枝上增加佣金。 谁能建议我该怎么做? 预先感谢。
答案 0 :(得分:0)
如果要在Twig中使用php函数,则可能需要创建一个新的扩展名。
class calculateThingsForPaymentsExtension extends \Twig_Extension
{
public function calculateCommission(Transaction $transaction)
{
if ($transaction->getPaymentType() == Order::PAYMENT_TYPE_ALTERNATIVE)
{
//your logic
}
}
public function getFunctions()
{
return (array(new \Twig_Function('calculateCommission',
array($this, 'calculateCommission'))));
}
}
然后在Twig
{% set commission = calculateCommission(transaction) %}
我在Symfony 4中使用了它,我的班级被自动注册为服务,可以照常使用。
假定您将Twig与Symfony一起使用,则可以阅读documentation,以获取更多信息。