laravel的数据分页及验证码功能

一、数据分页

在laravel里面要完成分页是很简单的,它的思想之前的框架有些不一样,之前框架使用的是分页类完成分页的,laravel是直接调用模型的分页方法,返回对应的数据和分页的字符串。
分页类在框架中的位置:

vendor/laravel/framework/src/Illuminate/Pagination

案例:使用分页功能实现当前member数据表的分页效果,每页显示一条数据。
在这里插入图片描述

分页效果实现重要步骤
1、查询符合分页条件的总的记录数
2、计算总的页数(总记录数/每页记录数,并且向上取整)
3、拼凑分页的链接
4、使用limit语法来限制分页的记录数
5、展示分页的页码和分页的数据
6、如果可以,建议去考虑下分页的样式显示问题

在laravel中步骤分为 :
1、分页
2、展示
3、处理样式

创建路由,并且展示简易列表页面
路由: /pageshow
在这里插入图片描述
控制器:
在这里插入图片描述
无分页视图:
在这里插入图片描述
使用分页展示:
每页展示一条数据

在laravel中分页有2个提供者,DB查询构建器,另外可以使用模型来实现。用法基本一致。
分页最基本语法:
Model::paginate(每页显示对记录数)同样,paginate和get一样,支持使用where以及orderBy等辅助查询的方法。
在这里插入图片描述
在这里插入图片描述
显示分页结果
当调用paginate方法是,你将获取Illuminate\Pagination\LengthAwarePaginator实例,而调用方法simplePaginate时,将会获取Illuminate\Pagination\Paginator实例,这些对象提供相关方法米阿树这些结果集,除了这些辅助函数外,分页器实例本身就是迭代器,可以像数组一样对其进行循环调用。所以,获取到结果后,可以按如下方式使用Blade显示这些结果并渲染页面链接:

<div class="container">
	@foreach($data as $user)
	{
    
    {
    
    $user -> name}}
	@endforeach
</div>	
{
    
    {
    
    $data -> links()}} // 通过数据对象调用links方法显示分页码

二、验证码

验证码:captcha,全自动区分人与计算机的图灵测试。
回顾:生成验证码需要经过:画画步、生成干扰线、生成噪点、生成验证码、生成验证码存入session、输出图片。
常见的验证码类型:字符验证码、短信验证码、电话验证码、12306类型验证码、拖拽验证码等。

2.1 验证码依赖安装

packagist网站搜索验证码的代码依赖:关键词:captcha
在这里插入图片描述
在目录终端下输入安装命令:

composer require mews/captcha

在这里插入图片描述
在config/app.php中配置:
在这里插入图片描述
在这里插入图片描述
如果需要自定义的设置,就添加配置文件:
首先在文件终端命令后执行:

php artisan vendor:publish

在这里插入图片描述
在这里我们选择11然后回车这个时候就有captcha.php
在这里插入图片描述
在表单的blade中写入如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="/auto_verify" method="post" enctype="multipart/form-data">
        <input type="text" name="name" placeholder="请输入姓名"><br/>
        <input type="text" name="age" placeholder="请输入年龄"><br/>
        <input type="text" name="email" placeholder="请输入邮箱"><br>
        <input type="file" name="avatar" ><br/>
        <input type="text" name="yzm" placeholder="验证码"><img src="{
    
    {captcha_src()}}" alt=""><br/>
        {
    
    {
    
    csrf_field()}}
        <input type="submit" value="提交">
        <!-- 错误信息显示 -->
        @if (count($errors) > 0) 
            <div class="alert alert-danger">
                <ul>
                    @foreach ($errors -> all() as $error) 
                        <li>{
    
    {
    
    $error}}</li>
                    @endforeach
                </ul>
            </div>
        @endif
    </form>
</body>
</html>

在这里插入图片描述
浏览器输入展示表单的路由:
在这里插入图片描述
可以看到验证码出来了,正常一般都是4个,我们去配置文件修改:
在这里插入图片描述
效果如图:
在这里插入图片描述
然后添加验证码验证规则:
在这里插入图片描述
效果:
在这里插入图片描述
可以看到这边出现了yzm,这个时候我们去改语言包:
在这里插入图片描述
效果:
在这里插入图片描述
接着输入不一样的验证码:
在这里插入图片描述
增加翻译:
在这里插入图片描述
效果:
在这里插入图片描述
更多配置语法点这里

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

猜你喜欢

转载自blog.csdn.net/weixin_44103733/article/details/114577497