繁体   English   中英

Laravel-使用Eloquent登录以进行身份​​验证

[英]Laravel - login for auth with Eloquent

我的Laravel是全新安装。

routes.php文件

Route::get('/', 'MainController@idle');

Route::get('login', 'MainController@login');

Route::get('call', 'MainController@call')->before('auth');

MainController.php

class MainController extends Controller {

   public function idle() {
      return Response::json('idle');
   }

   public function login() {
      $user = array(
         'username' => Input::get('username'),
         'password' => Input::get('password')
      );

      if (Auth::attempt($user)) {
         return Redirect::intended();
      } else {
         return Redirect::route('login');
      }
   }

   public function call() {
      $users = User::all();
      return $users;
   }

}

filters.php

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::guest('login');
});

要求:

http://l0calhost/survey/public/login

    InvalidArgumentException
Route [login] not defined.

为什么说它没有定义?

是的,因为您添加了AUTH过滤器

Route::get('call', array('before' => 'auth', 'uses' => 'MainController@call'));

Laravel会假设您有路线

Route::get('login', ...);

您将在filters.php文件中找到类似的内容,然后可以将其更改为最适合您的内容:

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::guest('login');
});

您还必须命名路线:

Route::get('login', array('as' = 'login', 'use' => 'MainController@login'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM