我真的很想了解我的项目中的问题出在哪里,而且我喜欢 Laravel,但同时它也让我很难找到问题的根源。
我不明白我是否缺乏知识(也许是这样),或者我是否需要一些魔杖来理解什么文件引发了错误。
我目前正在处理 3 个类(class):
App\Services\Http
文件夹中的HttpClientContract.php
App\Services\Http
文件夹中的HttpClient.php
App\Providers
文件夹中的HttpClientServiceProvider.php
可能我命名错误或调用了错误的路径,但我遇到的错误如下:
从这里我确实明白我调用的 Class App\Services\HttpClientContract
不存在,很好。但我在哪里犯了这个错误呢? :(
它说在 ...src/Illuminate/Routing/RouteSignatureParameters.php
中,这可能是子容器类左右,但我不知道MY 错误是。
[编辑]
当然是一个 RouteSignatureParameters.php
我可以想到 routes/web.php
文件。但我会给你另一个例子:
在此Laracast lesson在 7:20
分钟,routes/web.php
由以下内容组成:
Route::get('/', function(){
dd(app('example'));
});
Example
类未导入,也未绑定(bind)到应用程序容器,因此此错误会引发以下错误:
我需要修复的文件是 routes
文件夹中的 web.php
,但是 Laravel 错误处理并没有告诉我这一点,所以我该如何解决?
有没有办法显示实际需要修复的文件?
最佳答案
实际上,laravel 确实会告诉您哪个文件导致了错误。下图中的红色框是您的整个调用堆栈(回溯),生成错误的文件位于两者之间
为了更容易,您可以仅将调用堆栈更改为应用程序框架,这样就可以更轻松地找到出错的文件。
这是App\Http\Controllers\HomeController.php
文件的第35行
35 app('example');
36
37 return view('home');
当您犯语法错误或类似错误时,它会很简单(检查图像,只有一个文件),但如果错误像您犯的那样,则不同,因为错误直到不存在才发生正在尝试实例化类,这就是为什么您会得到一长串调用堆栈的原因。
关于Laravel 错误屏幕,哪个文件引发错误以及要修复哪个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54322957/