2016-07-04 14 views
1

Twigにsubstr_countを使用したいと思っていますが、既に存在しますか?このようなことをしたい。Twigの部分文字列

<?php 
$text = 'This is a test'; 
echo strlen($text); // 14 

echo substr_count($text, 'is'); // 2 

私はエクステンションを行うことができますが、これは既に私が逃したものであるかもしれません。

答えて

0

私は拡張子

namespace AppBundle\Twig; 

class SubStrCountExtension extends \Twig_Extension 
{ 
    public function getFunctions() 
    { 
     return array(
      new \Twig_SimpleFunction('substr_count', array($this, 'substr_count')), 
     ); 
    } 

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

    public function substr_count($str, $char) 
    { 
     return substr_count($str, $char); 
    } 
} 

そしてservices.yml私はsymfonyの3.2.8で解決策を使用しますが、説明にこのコードブロックが内部である必要があります言っていない

app.twig_extension.substr_count_extension: 
    class: AppBundle\Twig\SubStrCountExtension 
    tags: 
     - { name: twig.extension } 
+1

あなたのカスタム関数/フィルタを自分の個人で計画している場合を除いて、カスタムクラスに複数の関数/フィルタを追加できるように、クラスの名前をより一般的な名前に変更しますクラス。 – Rooneyl

+0

良い叫び声!私は今これを行う。ありがとう。 –

1

これは、Twig またはfiltersのリストには存在しません。

独自のカスタム関数/フィルタを作成するか、packageを試してみる必要があります(このパッケージを使用したことがないので、コメントできませんが、Googleの検索結果の最初のページにあります)。

0

で行きました:サービス このエラーが表示されない場合: 構成をロードできる拡張子がありません.....

このコード必要がありますが、これは正しいですサービス内にある:

services: 

app.twig_extension.substr_count_extension: 
    class: AppBundle\Twig\SubStrCountExtension 
    tags: 
     - { name: twig.extension } 

は最後に、小枝での正しい使用は、次のとおりです。これについて

tu placa es: {{substr_count(datos.picoyplaca,4)}} 

よろしく

1

どのように?

{%set count = text|split('is')|length-1 %} 
+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](レビュー/低品質の投稿/ 16688233) –

+0

@ ADreNaLiNe-DJなぜですか? – Zizouz212

+0

なぜですか?トピックのスターターは、小枝で文字列の部分文字列を数える方法について質問しました。この1行のコードはこれを行います。これには何が問題なのですか? –

関連する問題