1.注意路由必须指定name才能使用这个.方便修改
<form method="POST" action="{{ route('login') }}">
2.在项目目录下查看laravel的所有路由
$ php artisan route:list
3.表单验证
public function store(Request $request)
{
$this->validate($request, [
'email' => 'required|email|max:255',
'password' => 'required'
]);
}
required(不能为空) email(email格式) max(最大长度)
4.有关request
$request->all(); //获取所有请求信息
$request->except("name"); //除了name
$request->input("name"); //获取name单个
$requett->name; //同上
$request->only("name","addr"); //只获取name和addr
insertGetId //插入并获得刚刚插入的id
5.用户身份进行认证的具体代码实现如下
public function store(Request $request)
{
$this->validate($request, [
'email' => 'required|email|max:255',
'password' => 'required'
]);
$credentials = [
'email' => $request->email,
'password' => $request->password,
];
if (Auth::attempt($credentials)) {
// 登录成功后的相关操作
session()->flash('success', '欢迎回来!');
return redirect()->route('users.show',[Auth::user()]);
} else {
// 登录失败后的相关操作
session()->flash('danger', '很抱歉,您的邮箱和密码不匹配');
return redirect()->back();
}
return;
}
我们在 store 方法内使用了 Laravel 提供的 Auth::user() 方法来获取当前登录用户的信息,并将数据传送给路由。
6.用户权限和重定向跳转
Auth::check();
//检查用户的权限true/false,用法如下图
Auth::user():
//访问已被授权的用户
redirect::guest();
//在重定向时会将当前url保存到session中,这样可以在登陆以后,使用Redirect::intended()方法跳转到之前的页面继续业务。
redirect::intended('/');
//方法用来返回给重定向器用户在登录前所想要前往的 URL 地址,该方法也接收一个参数作为所请求地址不可用时的备用地址。
7.资源控制器的删除操作
再点击退出删除之后浏览器将向指定地址发送一个post请求,但由于RESTful框架中会使用DELETE请求来删除一个资源,当用户点击时,实际上相当于删除了用户登录会话的资源,因此这里的退出操作需要使用DELETE请求来发送给服务器,由于浏览器不支持发送DELETE请求,我们需要使用一个隐藏域来伪造DELETE请求.
在Blade模板中,我们可以使用method_fidle方法创建隐藏域.
{{ method_field("DELETE") }}
转化的html代码如下
<input type="hidden" name="_method" value="DELETE">
完整版本
<form action="{{ route('logout') }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<input type="submit" value="退出">
</form>