尝试访问 Laravel 5.8 中 null 类型值的数组偏移量并升级 php 7.4

问题描述

升级前一切正常,但自从我升级PHP 7.4 后,我的 Web 应用程序返回一个错误,如

尝试访问 null 类型值的数组偏移

这是我的代码

    @if(isset($data)) 
    @if(isset($data['panel']) && ($data['panel'] !==null)) // possible problem
    @dd($data); // since i put dd here maybe i manage to figure the line code on the line above 
    @PHP if(isset($data['customer'])) { $customerList = implode(',',$data['customer']); } @endPHP
    @PHP if(isset($data['status'])) { $statusList = implode(',$data['status']); } @endPHP
        <input type="hidden" name="panelSort" value="@if(isset($data['panel'])){{ $data['panel']  }}@endif" />
        <input type="hidden" name="idleRange" value="@if(isset($data['idleRange'])){{ $data['idleRange']  }}@endif" />
        <input type="hidden" name="statusSort" value="@if(isset($statusList)){{ $statusList }}@endif" />
        <input type="hidden" name="customerDbSort" value="@if(isset($customerList)){{ $customerList  }}@endif" />
        <input type="hidden" name="severityDbSort" value="@if(isset($data['severity'])){{ $data['severity']  }}@endif" />
        <input type="hidden" name="prDbSort" value="@if(isset($data['pr'])){{ $data['pr']  }}@endif" />
        <input type="hidden" name="catDbSort" value="@if(isset($data['category'])){{ $data['category']  }}@endif" />

@endif
@endif

可能的问题是 $data[panel] 这是我标记代码注释

我尝试过的是在 composer.json 上更改 PHP 版本并运行命令

作曲家更新

解决方法

也许您可以尝试以下解决方案。


@php
    $customerlist = (isset($data['customer']))? implode(',',$data['customer']):''
    $statusList = (isset($data['status']))? implode(',$data['status']):''
@endphp
<input type="hidden" name="panelSort" value="{{ $data['panel'] or ''  }}" />
<input type="hidden" name="idleRange" value="{{ $data['idleRange'] or ''  }}" />
<input type="hidden" name="statusSort" value="{{ $statusList }}" />
<input type="hidden" name="customerDbSort" value="{{ $customerList  }}" />
<input type="hidden" name="severityDbSort" value="{{ $data['severity'] or '' }}" />
<input type="hidden" name="prDbSort" value="{{ $data['pr'] or '' }}" />
<input type="hidden" name="catDbSort" value="{{ $data['category'] or '' }}" />

检查安装的 Laravel 版本是否支持 or 刀片指令。如果此 or 不支持,您可以使用空合并运算符,即 ??

参考this