ドキュメントを読んだ後、最初のフィルターを試しましたが、このエラーが発生しました
/var/www/html/src/CategoryBundle/Resources/views/Default/menu.html.twig の 5 行目にフィルター "sanitize_for_image_url" が存在しません。
私がしたことは:
- バンドル ディレクトリの下にフォルダーを作成し、Twig という名前を付けます。
そのフォルダーの下にファイル CategoryExtension.php を作成し、次のコードを追加します。
<?php namespace CategoryBundle\Twig; class CategoryExtension extends \Twig_Extension { public function getFilters() { return array( new \Twig_SimpleFilter('price', array($this, 'priceFilter')), ); } public function sanitize_for_image_urlFilter($image) { $image = strtolower($image); $image = preg_replace('/[^a-z0-9 -]+/', '', $image); $image = str_replace(' ', '-', $image); return $image; } public function getName() { return 'category_extension'; }
}
内部
\CategoryBundle\Resources
に「config」という名前のフォルダーを作成し、構成の下に次の内容のファイル「services.yml」を作成します。services: category.twig.category_extension: class: CategoryBundle\Twig\CategoryExtension tags: - { name: twig.extension }
次のように、小枝テンプレートでフィルターを呼び出します。
<img src="{{ asset('bundles/dashboard/img/categories/' ~ entity.getName|lower|sanitize_for_image_url ~ '.gif') }}">
私は何か他のものを逃しましたか?