如何使用HttpException修复Laravel的路由错误?

时间:2017-09-21 18:05:33

标签: php laravel

使用zizaco entruest rbac和 这些是导致错误的网络路线

Route::group(['prefix' => 'user-management', 'middleware' => ['permission:admin']], function() {

    Route::get('/users', function(){
        return "sds";
    });

});

当我尝试导航到

http://localhost:8000/user-management/users

收到错误

Symfony \ Component \ HttpKernel \ Exception \ HttpException
No message

我哪里错了

我评论了所有其他路线并发现这是罪魁祸首

我按照解释

设置了我的rbac
https://github.com/Zizaco/entrust

5 个答案:

答案 0 :(得分:7)

您应该在403.blade.php目录下创建resources/views/errors模板视图 您的应用程序的异常处理程序找不到与异常状态代码关联的视图,因此它直接返回异常。

答案 1 :(得分:4)

您需要在private boolean isVideoHaveAudioTrack(String path) { boolean audioTrack =false; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(path); String hasAudioStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_AUDIO); if(hasAudioStr!=null && hasAudioStr.equals("yes")){ audioTrack=true; } else{ audioTrack=false; } return audioTrack; } 内添加auth middleware以及检查身份验证用户的权限。您可以通过添加permission middleware然后尝试登录来修复它,现在您可以导航到auth middleware网址。

users

答案 2 :(得分:0)

为了帮助您,我们需要更多信息。

  • 这是您申请中的唯一途径吗?
  • 在尝试访问/ user-manag之前,您是否对用户进行了身份验证??
  • 您的app / Http / Kernel.php文件中有什么内容?您是否添加了权限中间件?

不确定您接收的是什么类型的http代码(is it a 403?或500?)。

你可以做的事情可能有所帮助:

  1. 启用调试模式(将.env(或config / app.php)DEBUG更改为“true”)
  2. 检查laravel.log文件(storage / logs / laravel.log)
  3. 安装laravel-debugbar。该软件包可以让您更好地了解应用中发生的情况。 https://github.com/barryvdh/laravel-debugbar

答案 3 :(得分:0)

我查了一下中间件。它说:

if ($this->auth->guest() || !$request->user()->can($permissions)) {
    abort(403);
}

这意味着如果您未经过身份验证,则会在没有消息的情况下崩溃,或者由于您未获得许可而无法执行某些操作。

你可以在中止之前尝试dd()这里的东西。只是为了看它是否达到了这个目的。如果它确实在Laravel文档中检查了有关abort()和自定义错误页面的此页面:https://laravel.com/docs/5.5/errors#http-exceptions

答案 4 :(得分:0)

显然你的代码看起来很好。我猜你的中间件有一些问题,它不允许你通过。 你有使用权限:admin所以我猜你应该以管理员身份登录,然后它将正常工作。