PHP动态网站开发项目教程课件 任务14 Laravel中的表单验证、数据库操作_第1页
PHP动态网站开发项目教程课件 任务14 Laravel中的表单验证、数据库操作_第2页
PHP动态网站开发项目教程课件 任务14 Laravel中的表单验证、数据库操作_第3页
PHP动态网站开发项目教程课件 任务14 Laravel中的表单验证、数据库操作_第4页
PHP动态网站开发项目教程课件 任务14 Laravel中的表单验证、数据库操作_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP动态网站开发项目教程任务14Laravel中的表单验证、数据库操作子任务14.1Laravel中表单数据的后端验证方法14.1.1理解Laravel中的验证类Validator

Laravel提供了一个验证类Validator,其基本使用方法是:1. Validator::make('需要验证的表单数据','验证规则','错误提示信息');

其中可用的验证规则请参见官方文档。下面列出一些常见的典型验证规则。(1)accepted:表示待验证字段必须是

“yes”

、“on”

、“1”

或“true”。这对于验证“服务条款”或类似字段很有用。(2)alpha:表示待验证字段只能由字母组成。(3)alpha_dash:表示待验证字段可包含字母、数字、短横线(-)和下画线(_)。(4)alpha_num:表示待验证字段只能由字母和数字组成。

(5)digits:value:验证的字段必须为numeric类型,并且必须具有确切长度值value。(6)digits_between:min,max:验证的字段必须为numeric类型,并且长度必须在给定的min和max之间。(7)email:验证的字段必须符合

e-mail

地址格式。(8)required:验证的字段必须存在于输入数据中,即不为空。如果满足以下条件之一,则字段被视为“空”。①值为null。②值为空字符串。③值为空数组或空Countable对象。④值为无路径的上传文件。

除了使用系统直接创建好的这些验证规则以外,还可以使用自定义的正则表示式来创建更为复杂的验证规则。14.1.2使用Laravel验证类Validator完成表单数据验证14.1.3在前端页面中显示验证错误提示信息

为了在前端页面中显示验证错误提示信息,需要在视图中添加相应的代码。小王同学研究Blade模板引擎语法后,在

login.blade.php文件的表单中输入以下代码。1. {{var_dump($errors)}}

2. @if($errors->any())

3.

@foreach($errors->all()

as

$element)

4.

<li>{{$element}}</li>

5.

@endforeach

6. @endif

为了测试表单数据的验证效果,可以暂时把login.blade.php文件中的前端数据验证功能关闭,只需在check()方法的第一行添加return即可。这样设置后,可以不填写任何内容,直接单击“提交”按钮。此时,由于每项数据都是空值,在后端进行验证后,自然会出错,因此系统会将这些错误提示信息返回到前端文件中,如图14.1.1所示。图14.1.1

输出$errors中的错误提示信息

图14.1.1所示的矩形框中显示的3行内容就是foreach遍历出来的错误提示信息。

图14.1.1所示为具体的错误提示信息,这些信息只能便于我们理解其内容。在展示具体页面时,还需要将相关的信息在表单中显示出来,也就是需要把这些错误提示信息和文本框进行定位,将错误提示信息和每一个表单域相对应。要实现这个功能,可以在表单域的后面添加一个显示错误提示信息的DOM节点。

当故意在用户名、密码、验证码文本框中输入不能通过验证的内容时,单击“提交”按钮后,会在表单中显示每一项的错误提示信息,如图14.1.2所示。图14.1.2

在表单中显示验证错误提示信息子任务14.2Laravel中数据库的使用(用户登录)14.2.1使用Laravel中的模型

MVC模式中的Model就是一个快速操作数据库(准确地说是对应的数据表,一个模型对应一个数据表)的方法,可以利用模型加上一些自己想执行的操作对数据表进行快速操作,比如,查找特定的记录,实现数据的增、删、改等。模型是Laravel框架重要的基础之一,EloquentORM组件提供了模型定义、CRUD(Create、Read、Update、Delete,增加、读取、更新、删除)、软删除、修改器等API方法。

模型封装的好处是映射了底层数据库的数据结构、关联关系,可提供给逻辑代码调用,并进行了一些优化,有时比直接调用数据库进行SQL语句查询更加合理。模型事件机制提取出事件处理、事件监听,使程序逻辑解耦、层次更加清晰。

了解模型的相关内容后,小王同学参照文档的要求进行编码。(1)配置数据库相关信息。打开根目录下的“.env”文件,找到其中的数据库配置部分,按照实际情况进行配置。(2)在终端中执行以下命令创建模型:“php

artisan

make:model

UserModel”。

(3)输入代码修改模型文件。

在模型文件中,通过$table变量配置数据表,即可将UserModel模型映射到userinfo数据表。通过$primaryKey配置数据表的主键字段。因为所有的Eloquent模型会预设防止批量赋值,所以需要在Model中设置fillable和guarded属性。如果需要对任意字段进行设置,则可以使用“*”来代替。Laravel的create方法为字段批量赋值,save方法为字段逐个手动赋值。需要注意的是,fillable与guarded只限制了create方法,而不会限制save方法。create方法通常使用request中的所有请求参数来创建对象,而save方法则是为字段逐个手动赋值,所以create方法有可能会恶意加入不应该插入的字段。14.2.2在Laravel中完成用户登录

创建好模型后,接下来可以修改控制器,然后从数据表中查询用户名和密码是否正确。(1)修改控制器。(2)修改IDE中代码提示的bug。(3)修改导航内容。

图14.2.1所示为测试的登录后的结果。图14.2.1

用户登录后的首页(4)完善“注销登录”。页面中的“注销登录”链接也需要同步修改完善。先修改“注销登录”链接。(5)创建控制器。在Login控制器中添加logout()方法,即使用flush()方法清空Session。(6)创建路由。在web.php中创建路由。子任务14.3后台管理页面的制作14.3.1使用Laravel的中间件

小王同学前面在修改nav.blade.php文件时,已经完成了后台管理页面的链接,并创建了跳转路由。现在需要按照前面的设置,来创建后台管理页面。(1)将原来系统中的admin.php文件复制到resources/views/admin下(需要新建文件夹admin),并更名为index.blade.php。(2)打开文件,将头部判断权限的包含文件和其他所有的PHP代码都删除,然后包含nav模板,并进行测试,以确保这个页面能正确显示出来。(3)中间件的创建方式和控制器、模型等的创建方式类似,可以在终端中输入代码并执行来创建中间件。(4)修改中间件的内容。(5)创建中间件后,中间件还不会起作用,还需要注册中间件。(6)在路由中使用中间件。由于现在进入管理员页面时需要判断是否处于管理员登录状态,因此,需要修改“/admin/index”这个路由。14.3.2输出后台管理页面数据(1)修改login控制器中登录成功后的代码。(2)在终端中创建控制器。(3)在新创建的控制器中创建一个index()方法。(4)创建路由。(5)输出数据。在实现路由跳转时,有一个参数是$allUser,这是一个二维数组,里面包含所有的会员信息。在Blade模板引擎中有专门用于循环输出数组数据的方法。输入代码修改admin.

blade.php文件。

“序号”栏使用的是“{{$loop->iteration}}”。$loop是Blade模板引擎提供的循环输出变量的方法,相关的使用方法如表14.3.1所示。序号属性描述1$loop->index当前迭代的索引(从

0

开始计数)2$loop->iteration当前循环迭代(从

1

开始计数)3$loop->remaining循环中剩余迭代的数量4$loop->count被迭代的数组元素的总数5$loop->first是否为循环的第一次迭代6$loop->last是否为循环的最后一次迭代7$loop->depth当前迭代的嵌套深度级数8$loop->parent嵌套循环中,父循环的循环变量表14.3.1

Blade模板引擎中关于循环变量$loop的使用方法

此时,使用管理员账号重新登录,可以看到在管理员页面中输出了所有会员的信息,如图14.3.1所示。图14.3.1

管理员页面子任务14.4使用Laravel实现用户注册

完成用户注册功能时,参照前面用户登录时的操作,可以很快完成相关内容。(1)将原有的注册页面signup.php复制到“views/register”中,并更名为signup.blade.php。(2)删除头部的“session_start()”,删除包含nav.php文件的代码,并重新使用模板引擎包含nav.blade.php文件。(3)添加路由,以实现单击导航栏中的“会员注册”,自动跳转到会员注册页面。同时,实现单击“提交”按钮,跳转到后端注册页面,实现用户注册。(4)修改导航栏链接。打开nav.blade.php文件,修改“会员注册”链接。(5)创建注册控制器。在终端中输入以下命令。(6)添加表单提交的路由。在web.php文件中添加代码。(7)修改前端注册页面。在action属性中设置提交页面,同时,由于提交数据会用到POST方式,因此,需要在signup.blade.php中添加“@csrf”,以防止跨站攻击。(8)在RegisterController控制器中添加一个方法postRegi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论