Lumen中的NotFoundHttpException异常

48

我刚刚在Windows上安装了Lumen,不幸的是我遇到了以下错误:

NotFoundHttpException in Application.php line 1093:

in Application.php line 1093
at Application->handleDispatcherResponse(array('0')) in Application.php line 1063
at Application->dispatch(null) in Application.php line 1006
at Application->run() in index.php line 28

这里可能出了什么问题?


1
你是通过在结尾加上“/public”(例如:http://localhost/lumen/public)来访问应用程序的吗? - lukasgeiter
2个回答

70

通过改变方法,问题得到了解决。

$app->run();

在 /public/index.php 中

$request = Illuminate\Http\Request::capture();
$app->run($request);

这确实回答了我的问题... 很好。 - Paul Okeke
拯救这一天,这应该适用于新的副本,因为新的副本只包含$app->run(); - Safoor Safdar
1
为什么我们需要添加http/request?这些代码行不会影响API的正常工作吗? - Safoor Safdar
6
如果你将 Lumen 应用程序放在子文件夹中(相对于你的 web 服务器),Lumen 将会失败,因为 getPathInfo 方法返回错误的路径。如果你想要使用真正的 getPathInfo,你应该在 run() 方法中添加额外的参数。请参见这里这里 - krisanalfa
7
Laravel很不错,但有时候Taylor在像子文件夹这样的问题上会表现得非常固执执拗,即使这对他来说基本上没有任何难度。此外,这样做是官方不支持的,而且如果API发生变化可能会停止工作。 - Jake Z
真的在IIS7上帮了我很多。非常感谢。 - delmi

65

在你的index.php文件中,更改此行。

$app->run();

进入:

$app->run($app->request);

更新

使用make方法比通过数组访问访问类别名更快。

这个方法也可以使用:

$app->run(
    $app->make('request')
);

2
@DanielFaria 因为run方法只接受一个参数,该参数可以是null。然后,应用程序将通过dispatch方法dispatch路由。当请求为空时,请求的pathInfo将在pathInfo方法中被解析。你会发现一些有趣的东西。 - krisanalfa
成功了!非常感谢你! - Tapas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接