Php Laravel Auth不工作,一切似乎都是正确的

Php Laravel Auth不工作,一切似乎都是正确的,php,laravel,laravel-4,Php,Laravel,Laravel 4,下面是我的控制器代码 if(Auth::attempt($userdata)){ //echo 'dfdf'; //exit; return Redirect::to('mydata'); } 如果我取消注释…它将显示dfdf,这意味着Auth很好。。正确的??这是我的routes.php代码 Route::get('mydata', function() { return View::make('mydata');})->before

下面是我的控制器代码

    if(Auth::attempt($userdata)){

  //echo 'dfdf';
  //exit;
        return Redirect::to('mydata');
    }
如果我取消注释…它将显示
dfdf
,这意味着Auth很好。。正确的??这是我的routes.php代码

 Route::get('mydata', function()
 {
   return View::make('mydata');})->before('auth');
即使这样也可以…如果我在('auth')之前删除
->来自routes.php
公共函数doLogin()
{

这意味着即使是路由器也没问题,对吧?


如果我在('auth')之前删除
,则路由可以在不登录的情况下工作;
,这似乎连路由都可以,那么
返回Redirect::to('mydata');
为什么不重定向?即使在身份验证之后,它也会在登录页面上阻塞…

在注释后编辑:

在控制器中,将重定向更改为
::预期的

if(Auth::attempt($userdata)){
    return Redirect::intended('mydata');
}
从:

Redirect::designed
函数将用户重定向到他们想要的URL 在被身份验证捕获之前,正在尝试访问 如果 预定目的地不可用

API:

intended(string $default = '/', int $status = 302, array $headers = array(), bool $secure = null)
您不需要在('auth')之前将
->添加到
视图
调用中,因为只有当
auth::trunt
返回
true
时,您才会重定向到
mydata

因此,请将您的路线改为:评论后编辑感谢胡安·安东尼奥·奥罗斯科指出这一不足

Route::get('mydata', array('before' => 'auth', function() {
      return View::make('mydata');
});

另外,顺便说一句,在
返回之后,不需要添加
退出
,因为解释器已经用
返回
命令离开了函数,所以它甚至不会被执行。

您可以在这样的路由中使用auth filter



将“before”筛选器传递给路由属性并调用before()方法是相同的。ammm但是如果用户猜到路由的url是只供登录用户使用的,该页面应该受到保护,以防未经身份验证users@JuanAntonioOrozco谢谢你指指点点。你是对的!编辑了我的答案。如果你是下一个投票人,你能把它倒过来吗?@pc shooter是的,那它可以工作……但是如果我删除e
before('auth');
让我更新我的问题。@pc shooter在('auth')之前不使用
重定向到数据是没有用的;
在这种情况下,我甚至不必正确登录??
Route::get('mydata', array('before' => 'auth', function() {
      return View::make('mydata');
});
Route::get('mydata', array('before' => 'auth', function()
{

  return View::make('mydata');

}));