laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)
一、总结
一句话总结:
数据库的paginate方法:$data=DB::table("user")->orderBy("id","desc")->paginate(10);
页面links方法:{{$data->links()}}
分页效果 1、控制器 $data=DB::table("user")->orderBy("id","desc")->paginate(10); // simplePaginate 简化的分页效果 // paginate 正常分页效果 // 加载用户管理页面 return view('admin.user.index')->with("data",$data); 2、页面中 {{$data->links()}}
1、lavarel的两种分页效果?
简化分页效果:只有上一页下一页按钮:$data=DB::table("user")->orderBy("id","desc")->simplePaginate(10);
正常分页效果:还有指定页的按钮 :$data=DB::table("user")->orderBy("id","desc")->paginate(10);
分页效果 1、控制器 $data=DB::table("user")->orderBy("id","desc")->paginate(10); // simplePaginate 简化的分页效果 // paginate 正常分页效果 // 加载用户管理页面 return view('admin.user.index')->with("data",$data); 2、页面中 {{$data->links()}}
2、lavarel中如何使用验证码,比如登录的时候?
引入外部验证码
书写验证码路由:因为验证码使用的很普遍
引入外部验证码 1、把验证码文件夹拷贝到指定目录 (D:laravelyzmeduyzm2 esources) 2、书写路由 Route::get("admin/yzm","AdminLoginController@yzm"); 3、控制器中生成验证码 // 引入验证码类 include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new Code(); // 生成验证码 $code->make(); 4、获取验证码 $code->get();
3、lavarel中如何引入一个外部的类,比如验证码类?
include关键字:include "../resources/code/Code.class.php";
引入外部验证码 1、把验证码文件夹拷贝到指定目录 (D:laravelyzmeduyzm2 esources) 2、书写路由 Route::get("admin/yzm","AdminLoginController@yzm"); 3、控制器中生成验证码 // 引入验证码类 include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new Code(); // 生成验证码 $code->make();
4、lavarel中如何找到根命名空间?
反斜杠:$code=new Code();
引入外部验证码 1、把验证码文件夹拷贝到指定目录 (D:laravelyzmeduyzm2 esources) 2、书写路由 Route::get("admin/yzm","AdminLoginController@yzm"); 3、控制器中生成验证码 // 引入验证码类 include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new Code(); // 生成验证码 $code->make();
5、验证码点击自动更新如何实现?
js点击事件:点击自动更换img地址:onclick="imgs(this)"
带随机数做参数:不然地址一样,地址不会被更新:obj.src='/admin/yzm?code='+Math.random();
<div class="input-group"> <span class="input-group-addon"> <span class="glyphicon glyphicon-lock"></span></span> <input type="text" class="form-control" name="code" placeholder="请输入验证码"> <img src="/admin/yzm" onclick="imgs(this)" alt=""> </div> <script> function imgs(obj){ // 更换地址 obj.src='/admin/yzm?code='+Math.random(); } </script>
// 验证码方法 public function yzm(){ // 引入验证码类 include "../resources/code/Code.class.php"; // 实例化验证码类 $code=new Code(); // 生成验证码 $code->make(); }
6、验证码验证如何实现及原理?
看文档或者看源代码:非常简单,这里是个get函数获取验证码数据,和用户传过来的验证码比较一下即可:$yzm=$code1->get();
验证码原理就是session():可能需要按照需求改一下验证码相关的函数
验证码验证
// 后台登录处理
public function check(Request $request){
// 接收数据
$name=$request->input("name");
$pass=$request->input("pass");
$code=$request->input("code");
// 判断用户名是否输入
if ($name) {
# code...
// 判断密码
if ($pass) {
# code...
// 验证码是否正确
// // 引入验证码类
include "../resources/code/Code.class.php";
// // 实例化验证码类
$code1=new Code();
// 获取验证码
$yzm=$code1->get();
if ($yzm==strtoupper($code)) {
// 获取数据库
if ($data=DB::table("user")->where('name','=',$name)->first()) {
// 将数据库中密码解密
$dataPass=Crypt::decrypt($data->pass);
if($dataPass==$pass){
session(['adminUserInfo'=>['name'=>$name,'id'=>$data->id]]);
return redirect('admin');
}else{
return back()->withInput()->with("error","密码错误");
}
}else{
return back()->withInput()->with("error","用户名不存在");
}
}else{
return back()->withInput()->with("error","验证码有误");
}
}else{
return back()->withInput()->with("error","请输入密码");
}
}else{
return back()->withInput()->with("error","请输入用户名");
}
// exit();
// // 判断
// if ($_POST['name']=='admin' && $_POST['pass']=='123') {
// }else{
// return back();
// }
}
7、lavarel的session中可以存储数组数据么?
可以:session(['key' => 'value']);
Route::get('home', function () { // 获取 session 中的一条数据... $value = session('key'); // 指定一个默认值... $value = session('key', 'default'); // 存储一条数据至 session 中... session(['key' => 'value']); });