微信扫一扫打赏支持

laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)

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:\laravel\yzmedu\yzm2\resources)

2、书写路由
    Route::get("admin/yzm","Admin\LoginController@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:\laravel\yzmedu\yzm2\resources)

2、书写路由
    Route::get("admin/yzm","Admin\LoginController@yzm");

3、控制器中生成验证码
    // 引入验证码类
    include "../resources/code/Code.class.php";

    // 实例化验证码类

    $code=new \Code();

    // 生成验证码

    $code->make();

 

 

 

4、lavarel中如何找到根命名空间?

反斜杠:$code=new \Code();

 

引入外部验证码


1、把验证码文件夹拷贝到指定目录 (D:\laravel\yzmedu\yzm2\resources)

2、书写路由
    Route::get("admin/yzm","Admin\LoginController@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']);
});

 

 

 

 

 

二、内容在总结中

 

 

 

 
posted @ 2019-05-13 02:51  范仁义  阅读(1107)  评论(0编辑  收藏  举报