TP5.1路由中间件分组的问题

这样访问没有问题

Route::get('/register', 'index/register/register')->middleware('Login');
Route::get('/login', 'index/login/login')->middleware('Login');

手册上也说了支持路由组的中间件形式
图片描述

但是改成下面路由组的形式再访问时就报错了 这是怎么回事?

Route::group('/test', function(){
    Route::get('/login', 'index/login/login');
    Route::get('/register', 'index/register/register');
})->middleware('Login');

中间件

<?php
namespace app\http\middleware;
use think\facade\Cookie;
use think\response;
use think\facade\Request;
class Login
{
    public function handle($request, \Closure $next)
    {
        if (Cookie::has('uid')) {
            return redirect('/');
        }else{
            return redirect('/login');
        }
        return $next($request);
    }
}

图片描述

回复
阅读 6k
5 个回答
Route::group('test', function(){
    Route::get('test/login', 'index/login/login');
    Route::get('test/register', 'index/register/register');
})->middleware('Login');

试着这样写一下

谢邀,但是平时不用 ThinPHP, 你可以贴一下运行树,比较好排查

Route::group('user', function(){
    Route::get('login', 'index/login/login');
    Route::get('register', 'index/register/register');
})->middleware('Login');

访问/user/login即可

新手上路,请多包涵

Route::group(['test'], function(){

Route::get('login', 'index/login/login');
Route::get('register', 'index/register/register');

})->middleware('Login');
这样写,我用的5.1.19,欢迎骚扰。。。

推荐问题
宣传栏