【发布时间】:2020-05-17 03:34:30
【问题描述】:
我不得不将我的 laravel 5.4 应用程序移动到 >=PHP 7.3 服务器。将应用程序升级到更高的 laravel 版本会破坏一切。所以我坚持按原样完成这项工作。现在的问题是 Compact() 方法(用于将变量传递给视图的方法未定义)。我正在考虑在辅助类中编写 Compact 方法的副本,以使其全局可用。现在我什至不能在本地复制 PHP compact 方法。请帮忙提出任何建议。无论是关于如何解决问题还是使用紧凑方法的示例替代代码。
【问题讨论】:
-
函数是 compact() 而不是 Compact()。它区分大小写,希望对您有所帮助。
-
@shahburhan 函数名称在 PHP 中不区分大小写(很遗憾)。
-
@shahburhan PHP functions are not case sensitive.
-
在没有掌握项目的情况下不能说太多。您确定名称空间已正确定义吗?在函数名前添加 \ 是否可以解决问题?
-
方法不是未定义的,您的输入是指未定义的变量。请参阅documentation 中的紧凑型更新日志(请参阅 PHP 7.3 的注释,它现在会抛出 E_NOTICE)。解决方案可以是只替换紧凑型以传递像
return $this->view('something', ['var' => $var, 'anotherVar' => $anotherVar]);这样的数组(或使用->with())。在Laravel github 上建议更新到 5.5 来解决它,但显然这不是你的选择。
标签: php laravel php-7.3 laravel-views laravel-upgrade