compact():未定义的变量:Laravel 8中的object



我现在正在将我的Laravel应用程序从5.8升级到8。

问题是:Laravel 8应用程序所需的PHP 7.4(和7.3(不接受"compact(("中不存在的变量。修改我的代码逻辑需要几个小时。

在我看来,问题在于PHP开发团队的设计理念。他们忽略了这样一个事实,即像我们这样的人构建的php应用程序处理视图或控制器逻辑中不存在的变量。因此,他们将code cleanliness强加于用户控制之上。

我的问题:

有没有解决方案,比如

  • lcompact解决方法
  • 在我的控制器方法中添加$variable = null;的粗略破解
  • 或者像这里一样破解框架代码https://stackoverflow.com/a/59692651/4209866(答案在Laravel 8中不起作用,因为addWhereExistsQuery没有operator参数。(

谢谢。

此代码适用于laravel 8:

public function check_out() {
$pesanan = Pesanan::where('user_id', Auth::user()->id)->where('status',0)->first();
$pesanan_details = [];
if(!empty($pesanan)) {
$pesanan_details = PesananDetail::where('pesanan_id', $pesanan->id)->get();
}
return view('pesan.check_out', compact('pesanan', 'pesanan_details'));
}
add $pesanan_details = [];

最新更新