Laravel 显示 <p> 带有 if 条件的标签内容

Laravel display <p> tag content with a if condition

提问人:Manuel 提问时间:10/8/2023 更新时间:10/11/2023 访问量:39

问:

我正在做一个 laravel 项目。我通过通过foreach块传递html(p)标签来显示内容,并且我想用逗号分隔所有迭代。所以这是我如何做到的:

<p class="text-2xl">
   @foreach ($user->rateSchedule as $schedule)
      {{ $schedule->disciplines->name }}
      @if (!$loop->last)
         {{ ',' }}
      @endif
   @endforeach
</p>

假设显示如下: 针灸, 灵气, 针灸

但是,当显示逗号时,它前面有一个空格。

它的显示方式如下: 针灸 , 灵气 , 针灸

我想删除逗号前的空格。但我不知道该怎么做。

php html laravel 字符串

评论


答:

0赞 striker4150 10/10/2023 #1

与其循环访问计划并将它们一一打印出来,不如执行如下操作:

<p class="text-2xl">
    {{ Arr::join(Arr::map($user->rateSchedule, fn($schedule) => $schedule->disciplines->name), ', ') }}
</p>

其工作原理是首先使用 Arr::map() 将每个计划映射到学科的名称,然后使用 Arr::join() 将每个名称用逗号连接在一起。

初始解决方案中的额外空格可能是由于每行中的缩进/换行符造成的。Blade 不区分缩进/换行符和预期的空格。

0赞 Hamid Raza 10/11/2023 #2

你可以试试这个:

<p class="text-2xl">{{ $user->rateSchedule->pluck('disciplines.name')->implode(',') }}</p>