【问题标题】:Looping through an array with a collection使用集合循环遍历数组
【发布时间】:2021-09-12 05:32:23
【问题描述】:

我正在使用 Laravel ViewModels 重构从 API 返回的数据。 以下是我用来格式化特定数据的函数

 public function similar()
    {
        $similarCollection = collect($this->similar)->map(function($movie){

            return collect($movie)->merge([
                'poster_path' => $movie['poster_path'] ? 
                  'https://image.tmdb.org/t/p/w500/'.$movie['poster_path']
                   : 'https://via.placeholder.com/500x750?text='.$movie['title'],
                'backdrop_path' =>  $movie['backdrop_path'] 
                   ?'https://image.tmdb.org/t/p/original/'.$movie['backdrop_path']
                    :'https://via.placeholder.com/500x750?text='.$movie['title'],

            ])->only([
                'poster_path','title','backdrop_path','backdrop_path'
            ]);

        });

         dd($similarCollection);

    }

上面的函数在dd()之后返回下面的数组

 Illuminate\Support\Collection {#394 ▼
  #items: array:20 [▼
    0 => Illuminate\Support\Collection {#357 ▼
      #items: array:3 [▼
        "title" => "The Fox and the Hound"
        "backdrop_path" => "https://image.tmdb.org/t/p/original//87uShMszqPxwA034GsskGdzJOgN.jpg"
        "poster_path" => "https://image.tmdb.org/t/p/w500//1382VHxqZDXu2t8i46zf4fP71JG.jpg"
      ]
    }
    1 => Illuminate\Support\Collection {#359 ▶}
    2 => Illuminate\Support\Collection {#358 ▶}
    3 => Illuminate\Support\Collection {#374 ▶}
    4 => Illuminate\Support\Collection {#371 ▶}
    5 => Illuminate\Support\Collection {#361 ▶}
    6 => Illuminate\Support\Collection {#362 ▶}
    7 => Illuminate\Support\Collection {#363 ▶}
    8 => Illuminate\Support\Collection {#366 ▶}
    9 => Illuminate\Support\Collection {#367 ▶}
    10 => Illuminate\Support\Collection {#354 ▶}
    11 => Illuminate\Support\Collection {#353 ▶}
    12 => Illuminate\Support\Collection {#360 ▶}
    13 => Illuminate\Support\Collection {#403 ▶}
    14 => Illuminate\Support\Collection {#401 ▶}
    15 => Illuminate\Support\Collection {#396 ▶}
    16 => Illuminate\Support\Collection {#400 ▶}
    17 => Illuminate\Support\Collection {#402 ▶}
    18 => Illuminate\Support\Collection {#368 ▶}
    19 => Illuminate\Support\Collection {#395 ▶}
  ]
}

在我的刀片视图中,我有这段代码来循环遍历每个项目并将背景路径显示为图像

  @foreach ($similar['backdrop_path'] as $image)
            <div class="mt-8">
                <a href="#">
                    <img src="{{ $image }}" alt="Poster">
              </a>
           </div>

        @endforeach

问题是它导致“尝试访问类型为 null 的值的数组偏移量”错误消息。 我怎样才能达到预期的效果?谢谢。

【问题讨论】:

    标签: laravel laravel-8 laravel-7 laravel-collection


    【解决方案1】:

    你必须像下面这样使用

    @foreach ($similarCollection as $image)
        <div class="mt-8">
            <a href="#">
                <img src="{{ $image->backdrop_path }}" alt="Poster">
            </a>
        </div>
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2022-01-27
      • 1970-01-01
      • 2018-06-16
      • 2016-07-16
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      相关资源
      最近更新 更多