问题描述
升级前一切正常,但自从我升级到 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