2016-04-06 59 views
2

現在我有顯示所有數字的遊戲帳號,但是我想要的只是顯示最後4個數字。我對Symfony很新,所以我的問題是我怎麼能有這個代碼在樹枝?或者我必須做控制器嗎?在此先感謝...在樹枝中使用php函數

所以我想要的是這個,這是我想要在樹枝中的代碼。我的困惑在樹枝dispalying驗證碼:

$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"> 

回答

2

您可以創建一個枝條延伸來完成這項工作。

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閱讀更多關於它。

+0

非常感謝你..我會去閱讀文檔...我欣賞它 – Ris

+0

我正在使用樹枝,並沒有services.yml。我通過作曲家安裝了樹枝。 我會在哪裏告訴樹枝使我的樹枝模板可用的功能? – dreadycarpenter

+0

當您使用樹枝獨立時,https://twig.symfony.com/doc/2.x/advanced.html#filters – Federkun