我试图根据用户认证将单个URI路由到多个控制器。实质上,如果用户未登录并且他们访问根URI,则显示通用登录页面,否则,如果他们已登录,并访问根URI,则显示其个性化内容。Laravel 4.2路由过滤器根URI的路由过滤器认证/访客错误
我使用标准的开箱即用过滤器(auth/guest)和其他一些路由(这里没有显示)已经设置为快速auth/de-auth进行测试。
的想法似乎直截了当不够,在我看来,像它应该工作,但Laravel没有正确处理这样的:
Route::group(array('before' => 'auth'), function() {
Route::get('/', function() { echo 'logged in'; });
});
Route::group(array('before' => 'guest'), function() {
Route::get('/', function() { echo 'logged out'; });
});
不要紧,我有这些以什么顺序,Laravel不会用户通过身份验证时确认身份验证过滤器。第一条路线被跳过,Guest过滤器首先运行,或者单独运行(可能更准确)。
我错误地改变了其中一个过滤器的内容吗?这是为什么发生?难道这不是一帆风顺吗?
似乎Laravel无法处理多个操作的分配以测试单个URI。我不是特别想花时间挖掘代码库来找出问题。在我看来,这对框架本身来说是一个糟糕的设计决定,虽然如果是这样的话,它会解释这里的问题。
我需要一个完整性检查。
是的,我已经知道这一点,但试图避免在路径文件中的逻辑。当然,这个想法是,根URI具有多个状态,这取决于用户身份验证,因此有多个操作。我进一步将它抽象为多个控制器,一个用于注销(登录页面和接收区域),另一个用于登录(个性化内容)。我会选择你的答案,因为没有人回复,谢谢:) – ineedhelp 2014-11-30 11:33:18