用户登录

国庆活动:订阅年付会员送 6 个月,重订、续订送 12 个月。订阅 →

提交登录表单以后,会发现一个请求,默认这个请求用的是 post 方法,请求的地址就是 login 这个地址。下面,我们需要再去添加一个处理这个请求用的方法。

打开 AccountController ... 再去添加一个方法 ... 可以叫它 postLogin ... 用这个方法,可以处理用户登录的请求。

public function postLogin() {}

首先我们可以获取到用户输入的邮件还有密码 ... 用的是 Input 类的 get 方法 ... 在这个方法里,可以指定要获取内容的表单元素的名字 ...

$email = Input::get('email');
$password = Input::get('password');

然后用 Auth 类的 attempt 方法去登录用户 ... 这个方法需要一个数组参数 ... 数组里面的项目就是 users 表里面的字段的名称,还有对应值 ..

Auth::attempt(array('email' => $email, 'password' => $password))

这行代码的意思就是,看看用户输入的邮件地址还有密码,是否匹配数据库里面的记录 .... 匹配的话,就让他登录 ...

这里我们可以使用一个 if 语句 ... 如果登录成功的话 ... 可以把用户重定向到一个地址 .... Redirect ... 用它的 intended 方法 ... 这个方法会把用户带回到它试图登录之前的那个地址 ... 在这个方法里,也可以指定一个默认的重定向到的那个地址 ...

if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return Redirect::intended('/');
}

在下面,再去设置一下,如果登录失败的话,把用户重定向到的地方 ... 这里我们再把用户带回到 login 这个地址 ...

return Redirect::to('login');

路由

保存 ... 再去添加一条路由 ... 打开 routes.php ... 我们要添加一条 post 类型的路由 ... 使用 Route 类的 post 方法 ... 请求的地址是 login ... 处理这个请求用的方法是 AccountController 控制器里面的 postLogin 这个方法 ...

Route::post('login', 'AccountController@postLogin');

预览

下面,我们去试一下 ... 回到浏览器 . .. 打开登录页面 ... login

先随便输入一个邮件地址 ... 这个地址在 users 表里是不存在的 ... 点击登录 ... 会把我重定向到 login 这个地址 ...

再试一下 ... 输入我的邮件地址 ... 117663444@qq.com ... 还有密码 ..

在创建用户模型的时候,我们已经往 users 表里面,添加了一条记录 ... 就是这个用户登录 ....

点击 登录 ...

会把我重定向到 首页 .. 而不是 login 页面 ... 说明我已经登录成功了 ...

请求登录《 Laravel 身份验证 》

统计

11228
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点