我对laravel有点新意,但我在Php中经验丰富。 在以前的作品中,我设置了一种机制,可以让我在服务器上几乎发生任何问题时得到通知:
所以,当我开始使用laravel时,我尝试做同样的事情,并实现了:
但在所有情况下我都不会有有意义的错误。一个例子:
$store = Store::create(...)
在这一行中,我忘记指定命名空间(\ App \ Store :: create),我收到这些错误消息:
第一:
FatalThrowableError ; Type error: Argument 1 passed to App\Http\Controllers\User::create() must be an instance of Illuminate\Http\Request, array given, called in /var/www/html/laravel/blog/app/Http/Controllers/User.php on line 94
第二:
ErrorException ; Trying to get property of non-object in VerifyCsrfToken.php (line 156)
第三:
FatalThrowableError ; Type error: Argument 1 passed to Illuminate\Session\Middleware\StartSession::addCookieToResponse() must be an instance of Symfony\Component\HttpFoundation\Response, array given, called in /var/www/html/laravel/blog/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php on line 72
我理解laravel是一个复杂的框架,但我无法弄清楚为什么它会产生这些错误,以及我如何能够产生更多有用的错误(因为我只能知道“有些东西不好”)。
有人有想法吗?
¹Pep优先保留自己的错误(在日志中):-)
答案 0 :(得分:0)
当您启动一个新的Laravel项目时,错误和异常处理就是 已经为您配置。 App \ Exceptions \ Handler类就在哪里 记录您的应用程序触发的所有异常 回复给用户。
https://laravel.com/docs/5.4/errors
我建议您深入了解官方文档并进入App\Exceptions\Handler
。
也许您正在寻找该课程中的report
和render
方法。
答案 1 :(得分:0)
我终于把问题弄成了问题而且我学到了很多东西 我感谢他们的仁慈@Don&#tt Panic和@Vitalmax!
错误是我忘了PHP命名空间不区分大小写:在我的帖子中我清理了一些代码,因为我知道它并没有遵守代码的约定(控制器'名称必须以大写字母开头)。最初我的控制器名称是用户,错误的代码是:
$user = User::create(...)
你可以猜到PHP认为我想调用 user :: create (因为我在我的控制器中有这样的方法)而不是 User :: create (我想要的)。
我学到了什么: