Показ многомерного массива в блейде получает ошибку неопределенного смещения - PullRequest
0 голосов
/ 23 апреля 2020

Показ многомерного массива в блейде приводит к ошибке с неопределенным смещением 0. Я не могу показать с помощью цикла. Вот мой массив

array:3 [▼
  0 => array:6 [▼
    0 => {#280 ▼
      +"id": 30
      +"category": "wedding"
      +"sub_category": "groom"
      +"image": "30.png"
    }
    1 => {#274 ▶}
    2 => {#249 ▶}
    3 => {#281 ▶}
    4 => {#282 ▶}
    5 => {#283 ▶}
  ]
  1 => array:6 [▼
    6 => {#284 ▶}
    7 => {#285 ▶}
    8 => {#286 ▶}
    9 => {#287 ▶}
    10 => {#288 ▶}
    11 => {#289 ▶}
  ]
  2 => array:6 [▼
    12 => {#290 ▶}
    13 => {#291 ▶}
    14 => {#292 ▶}
    15 => {#293 ▶}
    16 => {#294 ▶}
    17 => {#295 ▶}
  ]
]

Я хочу показать это из своего блейда. вот код лезвия, который я написал. но это не работает.

@for($i=0; $i<count($chunks); $i++)
    <div class="column-grid">
        @for($j=0; $j<count($chunks[$i]); $j++)
            <div class="single-galleries-sub-img">
                <div class="galleries-sub-img">
                    <img src="{{asset('img/galleries/gallery-images/'.$chunks[$i][$j]->image)}}"
                         alt="{{$chunks[$i][$j]->id}}">
                </div>
                <div class="galleries-sub-img-hvr">
                    <a href="{{asset('img/galleries/gallery-images/'.$chunks[$i][$j]->image)}}"
                       data-lightbox="image-4"><i class="fa fa-search-plus" aria-hidden="true"></i></a>
                </div>
            </div>
        @endfor
    </div>
@endfor

в контроллере я использовал эту функцию

$galleries = DB::table('galleries')
    ->where('category','=',$request->type)
    ->paginate(18);


$chunks = $galleries->chunk(6);
$chunks = $chunks->toArray();

return view('galleries',compact('galleries','chunks'));

Можете ли вы помочь мне, как я могу увидеть этот массив на странице просмотра.

1 Ответ

0 голосов
/ 23 апреля 2020

В вашем коде это будет работать для первого массива, но не будет работать для массива 2 & 3, так как он использует $chunks[$i][$j], где $ j не получит 0 элементов для массива 2 & 3. вот почему вы получаете undefined error.

Поскольку индекс массива продолжается в чанке, он не сбрасывается для каждого чанка

Вместо использования для l oop Вы можете легко сделать это с помощью foreach l oop, также как и массив, лучше использовать foreach l oop всегда:

@foreach($chunks as $key => $value) {
    <div class="column-grid">
    @foreach($value as $k => $v) {
        <div class="single-galleries-sub-img">
            <div class="galleries-sub-img">
                <img src="{{asset('img/galleries/gallery-images/'.$v->image)}}"
                    alt="{{$v->id}}">
            </div>
            <div class="galleries-sub-img-hvr">
                <a href="{{asset('img/galleries/gallery-images/'.$v->image)}}"
                    data-lightbox="image-4"><i class="fa fa-search-plus" aria-hidden="true"></i></a>
            </div>
        </div>
    @endforeach
    </div>
@endforeach
...