如何检查属性的foreach循环。 Laravel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查属性的foreach循环。 Laravel相关的知识,希望对你有一定的参考价值。

我一直试图弄清楚如何过滤我的foreach循环,只显示一个图像,如果我的帖子有一个。到目前为止,我一直在尝试不同的功能和@ifs,但无济于事。

这是我的控制器代码:

<div class="container">
    <div class="row">
      <div class="col-sm-6">
        @foreach($posts as $post)
        <div>
          <h1>{{$post->title}}</h1>
          <p>{{$post->body}}</p>
          <img src="{{url('img', $post->image)}}">
        </div>
        <hr>
        @endforeach
      </div>
    </div>
  </div>
答案

你可以使用一个简单的@if

@if ($post->image)
    <img src="{{ url('img/' . $post->image) }}">
@endif

或者@isset

@isset ($post->image)
    <img src="{{ url('img/' . $post->image) }}">
@endisset

https://laravel.com/docs/5.5/blade#control-structures

另一答案

您可以使用简单的@if语句来查看当前image$post属性是否已设置。这可能看起来像这样:

@foreach($posts as $post)
    <div>
        <h1>{{$post->title}}</h1>
        <p>{{$post->body}}</p>
        @if(!empty($post->image))
            <img src="{{url('img', $post->image)}}">
        @endif
    </div>
    <hr>
@endforeach

通过包含它,仅当属性不为空时才会显示<img>元素。

正如另一个答案中所提到的,你可以用@if(!empty(...))替换@isset(...)来获得相同的结果。

以上是关于如何检查属性的foreach循环。 Laravel的主要内容,如果未能解决你的问题,请参考以下文章

如何在刀片模板的 foreach 循环中访问 laravel 集合?

如何在 Laravel 的 PHP/Blade 中使用 Foreach 循环?

如何在 laravel 中解码 Json 对象并在 laravel 中应用 foreach 循环

我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量

如何在laravel中的foreach循环中传递多个变量

如何在 foreach 循环内的 laravel 刀片文件中运行不同的 SELECT 查询?