重写了我的路由和过滤器脚本并且它起作用了,所以第一次可能犯了一个愚蠢的错误。发布了代码的缩小版本(删除了大部分路线)作为下面的答案。也接受了第一个答案,所以问题得到了回答。
从发现 laravel 的奇迹开始,但现在我被困住了。
我做了什么
首先,我创建了一些路线。
这行得通。
然后我为一个溃败组创建了一个过滤器。
当我将路由组放在我的默认路由后面时,这有点奏效。但是我可以解决这个问题,因为代码是从顶部执行的,并且当我将它放在我的默认路由之前的默认路由之前会被重写。听起来很符合逻辑。
多组的。
这是没有严重错误的地方。我首先创建了两个过滤器,因为我不知道是否可以制作负过滤器或以这种方式制作的东西。
一个过滤器与另一个过滤器正好相反。因此,如果过滤器一中的条件为真,则过滤器二中的条件为假。这样做是希望实现一个 rout 仅在该 rout 条件满足时执行,而另一个 rout 仅在不满足时执行。这导致了一个循环,我不明白。
我想要完成的事情
我希望一组可以访问几页,但不能用于第二组,反之亦然。如果用户来自第一组,但从第二组请求页面,他将被重定向到第一组的“/”路由。
我的尝试导致了重定向疯狂的不定式循环
一个例子
假设 John Doe 向 url 发出 get 请求。他降落在'/'路线上。John 未登录(或不满足任何条件)。所以约翰属于未登录的人之一。约翰被重定向到登录页面。
John 现在可以登录和登录。现在 John 属于第二组,该组由已登录的人组成。他现在一定无法看到登录页面。因此,当第 2 组的人向第 1 组的页面(例如 /login)发出请求时,他或她必须被重定向到第 2 组的页面(例如“/”)。
$a = true;
if($a){
Route::get('/', function(){return Redirect::to('login');});
Route::get('login', function(){View::make();});
}else{
Route::get('login', function(){return Redirect::to('/');});
Route::get('/', function(){View::make();});
}
问题:我如何使用 laravel 路由来做到这一点?