在twig中使用php函数

时间:2016-04-06 16:20:49

标签: php html symfony twig

现在我有显示所有数字的游戏帐号,但我想要的只是显示最后4个数字。我是Symfony的新手,所以我的问题是我怎么能在树枝上有这个代码?或者我必须做控制器吗?提前谢谢......

所以我想要的就是这个,这就是我想要的代码。我的困惑是在树枝上反对这段代码:

$gameId = '123456789';
$gameId = str_repeat('*', strlen($gameId) - 4) . substr($gameId, -4);

var_dump($gameId); //outputs  *****6789

这就是我已经拥有的,它显示了从表单中显示的所有数字......

  <input value="{{ gameAccount.getAccountNumber() }}" 
    class="form-control" 
    dataid="{{ gameAccount.getId() }}" id="inputAccountNumber{{ gameAccount.getId() }}" 
    value="{# { gameAccount.getAccountNumber() } #}" 
    placeholder="Account Number" 
    type="text">

1 个答案:

答案 0 :(得分:2)

您可以创建一个Twig Extension来完成这项工作。

namespace AppBundle\Twig;

class AppExtension extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('censorship', array($this, 'censorship')),
        );
    }

    public function censorship($id)
    {
        return str_repeat('*', strlen($id) - 4) . substr($id, -4);
    }

    public function getName()
    {
        return 'app_censorship';
    }
}

然后您将扩展名注册为服务

# app/config/services.yml
services:
    app.twig_extension:
        class: AppBundle\Twig\AppExtension
        public: false
        tags:
            - { name: twig.extension }

并在您的模板中调用它

{{ gameAccount.getAccountNumber()|censorship }}

您可以在documentation中了解更多相关信息。