Twig truncate () и slice () возвращают строку с именами html-сущностей - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть строка из 69 символов:

This is a test with characters like € or "like this". How 'bout that?

Я использую CKEditor в своей форме и выделяю слово «тест» жирным шрифтом.Вот как это сохраняется в базе данных:

<p>This is a <strong>test </strong>with characters like &euro; or &quot;like this&quot;. How &#39;bout that?</p>

Если я хочу показать строку без какой-либо разметки, я использую Twig-фильтры striptags и raw друг за другом, что приводит к:

This is a test with characters like € or "like this". How 'bout that?

Теперь из исходной строки я хочу показать первые 65 символов без какого-либо стиля.Я использую Twig-фильтр truncate (65).Это мой код в Twig:

{{ string | striptags | raw | truncate (65) }}

Мой результат -

This is a test with characters like &euro; or &quot;like this&quo...

Как вы можете видеть, специальные символы отображаются в виде их имени сущности HTML, хотя я только добавил truncate фильтр.Это ошибка или это следует ожидать?То же самое происходит, когда я использую фильтр slice.

Мой результат должен быть:

This is a test with characters like € or "like this". How 'bout 

РЕДАКТИРОВАТЬ: Я понимаю, в чем проблема сейчас.При использовании фильтра raw для строки это не означает, что ни один из исходных символов из этой строки (т. Е. Имена сущностей HTML) не будет учитываться при использовании фильтра slice или truncate.Я до сих пор не нашел решение, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...