#php #symfony #twig
#php #symfony #twig
Вопрос:
Я хочу отображать новости без первого элемента. Как я могу этого добиться?
Вот код, который я должен изменить:
<div class="home-box-news carousel-news slide home-box-shadow" id="news" style="clear: both;">
<ol class="carousel-indicators news-box">
{% for i in 0..news|length-1 %}
{% if loop.index is not divisibleby (2) %}
<li data-target="#news" data-slide-to="{{ i / 2 }}" {% if loop.first %}class="active"{% endif %}></li>
{% endif %}
{% endfor %}
</ol>
<div class="carousel-inner">
{% for item in news %}
{% if loop.index is not divisibleby (2) %}
<div class="item{% if loop.first %} active{% endif %}">
<div class="carousel-caption">
{% endif %}
<h3><a href="{{ path('home_news_index') }}">{{ item.name }}</a></h3>
<p class="date">{{ item.createdAt|date('d.m.Y, G:i') }}</p>
<p {% if loop.index is divisibleby (2) %}style="border-bottom: 0;" {% endif %}>{{ item.content[:110]|nl2br }}{% if item.content|length > 110 %}... <a class="more" href="{{ path('home_news_index') }}">czytaj dalej</a>{% endif %}</p>
{% if loop.index is divisibleby (2) or loop.last %}
</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
Комментарии:
1. вы пробовали
|slice
?
Ответ №1:
Существует более сжатая версия того, что предложил Роберт:
{% for item in news[1:] %}
Комментарии:
1. Вы можете отправить свой очень короткий ответ в качестве комментария.
Ответ №2:
Вы можете использовать фильтр slice, который работает как функция array_slice() в PHP.
{% for item in news[1, news.length -1 ] %}
Ответ №3:
поместите это в свой цикл, чтобы опустить первые новости
{% if loop.index0 > 0 %}
{# display your news #}
{% endif %}
Комментарии:
1. Будьте подробны:
{% if not loop.first %}
Ответ №4:
Конечно, есть другой ответ, который может быть / не быть более чистым / простым / w / e — не передавайте строку Twig в первую очередь.
Комментарии:
1. Это лучший ответ. Не пишите хаки, исправьте свое дерьмо.
2. Я не знаю, является ли это лучшим ответом, я полагаю, это зависит от контекста … может быть, вам нужна эта строка в другом месте, например…