【问题标题】:My new route is causing an error and I need help finding it我的新路线导致错误,我需要帮助找到它
【发布时间】:2014-11-20 08:28:25
【问题描述】:

所以我得到的错误是 Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException。

路线如下:

Route::get('/', 'AuthController@index');
Route::get('/login', 'AuthController@login');
Route::post('/login', ['before' => 'csrf', 'uses' => 'AuthController@authenticate']);
Route::get('/logout', 'AuthController@logout');

Route::group(['before' => 'auth'], function() {

$noIndex = [ 'except' => ['index'] ];
$noShow = [ 'except' => ['show'] ];

Route::get('/dashboard', 'PagesController@dashboard');

Route::get('/test', 'MessageController@index');

这里是控制器:

/**
 * Display a listing of the resource.
 * GET /test
 *
 * @return Response
 */
public function index()
{
    return View::make('test.index');
}

【问题讨论】:

  • 控制器是否有命名空间?你也不需要在你的路线上领先/Route::get('test'... 很好
  • 不,不是它只是与基本控制器和页面控制器一起坐在控制器文件夹中。
  • 您使用的网址是什么?你能粘贴php artisan routes的输出吗?
  • 此问题可能与thisthisthis 重复。如果你是同一个发帖者,你会更幸运地把它放在一个线程中。
  • @lowerends 给你 |消息控制器@index |认证 | |

标签: php laravel controller routes laravel-routing


【解决方案1】:

现在我们有了一些关于您的 routes.php 设置的更完整信息,问题可能是由auth 过滤器引起的。

(我假设您从上面的 routes.php 中删除了最后的 });。)

尝试删除before 过滤器(或将其临时更改为['before' => 'none'])并重新加载desk.dev:8000/test。确保您不要简单地在当前错误页面上点击重新加载,因为它可能指向 desk.dev:8000/login

如果您的AuthController 未设置,或者缺少login 方法,当filter.php 中的auth 过滤器尝试重定向到您的登录页面时,您将获得NotFoundHttpException,其中:

return Redirect::guest('login'); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2021-12-07
    • 2022-01-04
    • 2012-01-18
    • 2021-12-11
    相关资源
    最近更新 更多