我现在正在将我的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 = [];