【问题标题】:Laravel Basic Routing with no parameters - NotFoundHttpException没有参数的 Laravel 基本路由 - NotFoundHttpException
【发布时间】:2015-04-13 10:35:43
【问题描述】:

我有一个自定义路由控制器,它在返回视图之前检查数据库。话虽如此,除了第一个参数之外,我不会将任何参数传递给该控制器,而且永远不会。有没有办法阻止 laravel 期待一个参数?我收到此错误:

mydomain/login ---- 工作正常

mydomain/login/sometext -- 抛出错误

"Symfony\Component\HttpKernel\Exception\NotFoundHttpException" /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php

routes.php

Route::get('/', function(){return View::make('main.landing');});
Route::get('/{path}', array('uses' => 'RouteController@index'));

然后在我的 RouteController 中,我使用 $path 并查询数据库以检查路由是否存在,然后显示自定义视图。

任何帮助将不胜感激! 谢谢!

【问题讨论】:

  • 请发布您的路线定义。
  • 刚刚做了。谢谢博格丹。

标签: symfony laravel laravel-4


【解决方案1】:

您需要在路由参数中指定要允许斜杠的路由器。你可以这样做:

Route::get('/{path}', array('uses' => 'RouteController@index'))->where('path', '(.*)');

这将允许任何字符。

【讨论】:

  • 不错!效果很好。挽救了波格丹的一天。很高兴知道。
【解决方案2】:

默认情况下,路由参数不接受斜杠。您需要在 path 参数中明确允许任何字符:

Route::get('/{path}', array('uses' => 'RouteController@index'))
    ->where('path', '(.*)');

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 1970-01-01
    • 2017-05-09
    • 2017-08-10
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    相关资源
    最近更新 更多