Теги отображения Laravel in_arrary

Я, наверное, слишком много думаю об этом... На днях я начал изучать Laravel. Я следил за простым видео проекта типа «Блог» на YouTube.

Я немного отвлекся от некоторых аспектов видео. Здесь я создал «теги» для сообщений в блоге. Изображение здесь

Что я пытаюсь сделать, так это сделать так, чтобы "Важно!" используется тег, который отображается с помощью Bootstrap «значок-предупреждение», тогда как остальные теги будут использовать класс «значок-основной».

Вот что я пока накрутил:

Теги:

@foreach ($post->tags as $tag)
    @if (in_array('Important!', $post->tags))
        <span class = "badge badge-pill badge-warning">{{ $tag }}</span>
    @else
        <span class = "badge badge-pill badge-primary">{{ $tag }}</span>
    @endif
@endforeach

Как вы можете видеть на снимке экрана, отображаются все теги для этого сообщения с классом предупреждения. Что имеет смысл, потому что это то, что я говорю ему делать! У меня просто пустой момент, ха-ха.

if (in_array('Important!', $post->tags)) проверяет, есть ли «Важно!» тег, связанный с публикацией, если сам тег не имеет значения «Важно!».
IGP 24.12.2020 16:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проблема в том, что вы проверяете исходный массив, если это важно! тег существует. Поскольку он существует, он каждый раз оценивается как истина, поэтому каждый тег имеет класс badge-warning.
Вы должны проверять только текущий повторный тег. Я изменил ваш код, чтобы отразить это изменение
Пытаться:

  @foreach ($post->tags as $tag)
     @if ('Important!'== $tag))
            <span class = "badge badge-pill badge-warning">{{ $tag }}</span>
      @else
            <span class = "badge badge-pill badge-primary">{{ $tag }}</span>
      @endif
  @endforeach

Спасибо за Ваш ответ! Этот вариант действительно работает и очень близок к тому, что я пробовал раньше! Я отметил вариант выше как правильный ответ, но это тоже здорово. Спасибо.

MrPadingy 24.12.2020 16:45

Я объяснил вам проблему и не рефакторил ваш код, чтобы ответ был сосредоточен на проблеме.

ml59 24.12.2020 16:47
Ответ принят как подходящий
@foreach ($post->tags as $tag)
    <span class = "badge badge-pill badge-{{$tag == 'Important!' ? 'warning' : 'primary'}}">
        {{ $tag }}
    </span>       
@endforeach

Другие вопросы по теме