laravel框架学习(四)执行创建中间件后,提示无法找到该中间件的解决方法
2017-10-23 16:11
816 查看
按照官方提供的文档:http://laravelacademy.org/post/7812.html
1.创建中间件:先声明中间件,
会自动在app/Http/Middleware 文件夹下生成 AdminMiddleware的中间件文件:如下
2.然后绑定到app/Http/Kernel.php 文件中添加,如果需要使用路由中间件,就加载到
3.再输入该路由调用时,必须把AdminMiddleware的命名空间写上,不然会报错,造成无法使用
解决方法:就是在app/Http/Kernel.php该文件中加上
在控制器中调用中间件
1.创建中间件:先声明中间件,
php artisan make:middleware AdminMiddleware
会自动在app/Http/Middleware 文件夹下生成 AdminMiddleware的中间件文件:如下
namespace App\Http\Middleware; use Closure; use Auth; class AdminMiddleware { /** * 声明中间件,验证逻辑可以根据自己需求写 * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { //中间件处理是否需要登录权限 if( !Auth::guard('admin')->check()){ return redirect('/admin/login'); } return $next($request); } }
2.然后绑定到app/Http/Kernel.php 文件中添加,如果需要使用路由中间件,就加载到
protected $routeMiddleware = [ //添加中间件 'admin.auth'=> AdminMiddleware::class, 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, ];
3.再输入该路由调用时,必须把AdminMiddleware的命名空间写上,不然会报错,造成无法使用
解决方法:就是在app/Http/Kernel.php该文件中加上
namespace App\Http; use App\Http\Middleware\AdminMiddleware; //引入新建的中间件的方法
在控制器中调用中间件
public function __construct(){ //执行中间件,验证是否登录 ,排除loginForm,login两个不需要验证的方法 $this->middleware('admin.auth')->except(['loginForm','login']); }
相关文章推荐
- laravel框架学习(二) 解决MySQL5.7以下数据无法迁移的方法
- laravel框架学习(三)win下php artisan tinker 测试数据时,无法运行报错的解决方法
- 创建发布服务器提示"SQL Server 无法连接到服务器"的解决方法
- 在vmware esx平台创建windows 2003 server群集时无法找到共享磁盘的解决方法
- 访问aspx页面时提示“无法找到该页”的解决方法
- Win8系统IE浏览器提示无法找到该网页的解决方法
- IIS无法打开,提示无法找到指定的文件的解决方法
- Linux下rm命令提示“Argument list too long”无法执行解决方法
- Laravel执行migrate命令提示:No such file or directory的解决方法
- Laravel执行migrate命令提示:No such file or directory的解决方法
- 无法创建表,提示:指定的架构名称 "dbo" 不存在,或者您没有使用该名称的权限。解决方法
- WORD 或者 Outlook 提示“无法创建工作文件,请检查临时环境变量” 的解决方法
- Win7系统无法创建休眠文件且提示错误代码0xc000007f的解决方法
- 在执行Java命令或eclipse启动程序,提示报错’jvm.cfg无法找到’的解决办法
- Web app 前端框架ratchet使用push.js界面跳转后,js代码无法执行的解决方法
- 打开组策略,提示MMC无法创建管理单元 解决方法
- sql server 中对表更改时无法保存修改,提示”无法保存要求重新创建表的更改“的解决方法
- vc2005 调试时提示错误信息:“无法找到.exe的调试信息” 的解决方法
- 运行vbs脚本,提示“无法找到脚本‘XXX’的脚本引擎“Vbscript”的解决方法
- 文件在linux下无法执行,提示bad interpreter的解决方法