3

だから私はSymfony2にかなり慣れておらずcamelize、小枝テンプレートでフィルターを使おうとしています。ただし、ページをリクエストすると、フィルターが存在しないというエラーが表示されます。

フィルタ「camelize」は::base.html.twigに存在しません

テンプレートファイルの行は次のとおりです。

{{'hello world' | キャメライズ}}

フィルタは、Twigのクイックリファレンスページにリストされています。

私は混乱しています、Symfony2は小枝のすべてのフィルターをサポートしていませんか?かなりの数の行方不明があるようです、なぜですか?そして、それがそれらをサポートしていない場合、不足しているものを追加する方法はありますか?

前もって感謝します!

編集OK、それで私は遅れていることがわかりました、そして私は実際に正しいgitプロジェクトを持っていることを確認することを忘れないでください。私が混乱したのも不思議ではありません。返信ありがとうございます!

4

4 に答える 4

11

Symfony 2 にはキャメルケース用のタイトルフィルターがあります

{{ entity.yourstring | title }}

キャメルケースにあなたの文字列

于 2014-11-05T16:58:46.773 に答える
9

リンクは、元のプロジェクトの変更されたコピーを意味する GitHubのフォークを指しています。元のプロジェクトはhttps://github.com/fabpot/Twigです。

camelizeTwig にはフィルターがありません。内蔵フィルターはこちら. カスタム Twig 拡張機能の作成方法 のチュートリアルに従って、独自の camilize フィルターを作成できます (実際には簡単です...) 。

編集:楽しみのために、次のように書くことができます:

class MyTwigExtension extends Twig_Extension
{
    public function getFilters()
    {
        return array(
            'camelize' => new Twig_Filter_Method($this, 'camelizeFilter'),
        );
    }

    public function camelizeFilter($value)
    {
        if(!is_string($value)) {
            return $value;
        }

        $chunks    = explode(' ', $value);
        $ucfirsted = array_map(function($s) { return ucfirst($s); }, $chunks);

        return implode('', $ucfirsted);
    }

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

これは簡単で汚れたフィルターであることに注意してください。ビルトイン フィルターを見て、ベスト プラクティスを学びましょう。

于 2012-09-28T14:39:36.800 に答える
3

探しているフィルターの名前は「title」です: http://twig.sensiolabs.org/doc/filters/title.html

于 2014-07-04T13:19:36.793 に答える
0

Craft CMS 3 のデフォルトの最適なソリューションは次のとおりです。

Craft 3|camelに小枝用のフィルターが追加されました

https://docs.craftcms.com/v3/dev/filters.html#camel

{{ 'foo bar'|camel }}
{# Output: fooBar #}
于 2020-01-14T23:26:54.180 に答える