如何解决PHP ACF错误:“尝试访问类型为bool的值的数组偏移量”?

问题描述

我一直在开发自己的主题,并且不得不使用Laravel Sage环境使用ACF制作一些自定义块。

我的目标是从转发器对象中检索文本列表。 (可以成功运行,但仍会显示错误)。

因此引发该错误代码如下:

page.blade.PHP

@PHP
  $tv_lists = [];
  while (have_rows('tv_lists')) {
    the_row();
    $tv_lists[] = [
      'tv_list' => get_sub_field('tv_list'),];
  }
@endPHP

@if(get_field('tv_lists'))
          <div class="tv-lists col-12 col-md-8 col-lg-9 block-image">
            @foreach($tv_lists as $tv_list)
              @if(!empty($tv_list['tv_list']))
                <div class="tv-list quote-content">
                  <a class="tv-list-text">{{ $tv_list['tv_list'] }}</a>
                </div>
              @endif
            @endforeach
          </div>
        @endif

然后,负责创建转发器块的PHP代码如下在page.PHP中:

->addRepeater('tv_lists',[
    'conditional_logic' => [[['field' => 'links_type','operator' => '==','value' => 'list']]],'label' => 'TV Lists','layout' => 'block',])
    ->addText('tv_list',[
      'label' => 'TV List',])
    ->endRepeater()

在此先感谢您抽出宝贵时间阅读此书。

解决方法

if之前,您需要一个while语句

所以你想做这样的事情。

@php
  $tv_lists = [];
  if (have_rows('tv_lists'){
    while (have_rows('tv_lists')) {
      the_row();
      $tv_lists[] = [
        'tv_list' => get_sub_field('tv_list'),];
    }
  }
@endphp