ErrorException Undefined variable 在移动到 laravel 辅助函数之后
ErrorException Undefined variable After moving to laravel helper functions
我有一个旧网站,曾经是香草 php。我迁移到 laravel 将整个代码放在视图中的 'legacy-folder' 下,我有一个包含很多功能的文件夹。
此时一切 运行 都很好。
为了更进一步,我将函数从 views 中的文件夹移到了 helpers 中。现在我在代码库中到处重复出现一些类型的错误,我正在调试它们,但它们很多而且我不知道为什么现在抛出它们而不是之前抛出。
例如,如果出现以下情况,现在会抛出错误:
访问了未定义的数组索引
$a = $_GET['a'];
未定义 属性 对象被访问
$a = $b->c;
我尝试将一个未设置的变量加入队列
$a .= "例子";
调用未设置变量的 foreach
函数传递了一个未设置的变量
这是我的routes/web.php
Route::get('{path?}', 'LegacyPagesController@show')->where('path', '.+');
Route::post('{path?}', 'LegacyPagesController@show')->where('path', '.+');
LegacyPagesController
public function show($path='index.php')
{
ob_start();
require(base_path('resources/views/legacy-pages/').$path);
return ob_get_clean();
}
我将助手放在 App\Helpers\ExampleHelper.php 中作为无类函数集合,并放在 composer.json
中
"autoload": {
"files": [
"app/Helpers/ExampleHelper.php",
我不确定这些错误是否与新助手有关或我的路由错误或是否涉及其他任何问题,例如 php 版本或 php.ini 配置。任何建议表示赞赏。
要删除您看到的错误消息,只需像这样更改您的 error_reporting
变量:
ini_set('error_reporting', E_ALL & ~E_STRICT);
建议打开它,而不是修复错误,因为它确实是错误,php足够聪明,可以为您处理它们。
显示了 php 团队推荐的设置。
我有一个旧网站,曾经是香草 php。我迁移到 laravel 将整个代码放在视图中的 'legacy-folder' 下,我有一个包含很多功能的文件夹。
此时一切 运行 都很好。
为了更进一步,我将函数从 views 中的文件夹移到了 helpers 中。现在我在代码库中到处重复出现一些类型的错误,我正在调试它们,但它们很多而且我不知道为什么现在抛出它们而不是之前抛出。
例如,如果出现以下情况,现在会抛出错误:
访问了未定义的数组索引
$a = $_GET['a'];
未定义 属性 对象被访问
$a = $b->c;
我尝试将一个未设置的变量加入队列
$a .= "例子";
调用未设置变量的 foreach
函数传递了一个未设置的变量
这是我的routes/web.php
Route::get('{path?}', 'LegacyPagesController@show')->where('path', '.+');
Route::post('{path?}', 'LegacyPagesController@show')->where('path', '.+');
LegacyPagesController
public function show($path='index.php')
{
ob_start();
require(base_path('resources/views/legacy-pages/').$path);
return ob_get_clean();
}
我将助手放在 App\Helpers\ExampleHelper.php 中作为无类函数集合,并放在 composer.json
中"autoload": {
"files": [
"app/Helpers/ExampleHelper.php",
我不确定这些错误是否与新助手有关或我的路由错误或是否涉及其他任何问题,例如 php 版本或 php.ini 配置。任何建议表示赞赏。
要删除您看到的错误消息,只需像这样更改您的 error_reporting
变量:
ini_set('error_reporting', E_ALL & ~E_STRICT);
建议打开它,而不是修复错误,因为它确实是错误,php足够聪明,可以为您处理它们。