热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

laravel模板继承_Laravel框架用户注册功能实现(路由、控制器、视图)

LaravelLogLaravel框架是世界范围最流行的免费开源PHPWeb应用程序框架,其架构模式是基于MVC设计模型开发的PHP应用程序框架。通过Controll
29326d40822f780fe0edfd105808668e.png

Laravel Log

Laravel框架是世界范围最流行的免费开源PHP Web应用程序框架,其架构模式是基于MVC设计模型开发的PHP应用程序框架。通过Controller、Route、View逻辑层次划分实现MVC设计模式,其中Controller控制器,用于实现业务逻辑;Route用于接收用户请求,实现请求的路由处理;View主要用于控制业务操作结果的展示即data model的输出显示。其操作实现原理过程描述如下:

59967383a08e8b5d45cb0bc501998527.png

Laravel架构运行流程示意图


项目描述及素材说明

一家名为“ airx”的新航空公司需要开发一个网站来支持其在线服务,例如航班信息搜索,购票和登机手续。 根据前述需求分析,要求您完成本网站的原型(使用指定的php框架laravel快速生成代码)以验证这些功能需求和业务逻辑。

e4bbebe10c77f5b75d1d266bf2e1d5bc.png

案例描述index页面

该项目目前已经给出了基本的html静态页面,所需实现的是使用laravel完成网站的架构设及功能实现。文本主要以其中用户注册部分为例对laravel使用进行说明。本文涉及页面素材截图如下:

a4178fcb889bb625acefe78ffb478562.png

用户注册页面

9f57e873c11ed16de9a7eac36a01fb5d.png

注册成功跳转页面

除给出以上素材之外,项目还提供了数据迁移文件,因此在开发过程只需要运行迁移实现数据库及表的本地初始化。数据迁移文件素材如下:

69739012392d68ce2cb2d37907033b33.png

数据迁移文件


设计开发过程

在明确问题及所提供的素材基础上可以进一步选择开发工具进行网站的设计与实现。本文使用Sublime Text为开发工具进行用户注册功能的开发。开发过程描述如下:

1、配置开发环境

由于项目要求使用laravel框架进行应用的开发,因此首先需要配置开发环境,本例使用集成开发环境为XAMPP集成开发环境。Laravel选择使用6.0版本。Laravel可直接下载安装包即可,解压之后将其直接放到XAMPP的htdocs文件夹之下。目录截图如下:

cbe99b667ccae8adb2003c2c98d1a6e7.png

配置文件目录结构

配置完服务器文件目录结构可直接在浏览器中输入localhost测试,环境搭建是否成功,如出现Laravel信息页面则表示测试成功。测试效果页面如下:

d2a8a06205191864e0f33045fc561e40.png

测试页面成功标志

2、数据迁移

本例需要实现用户注册功能,前端表单填写信息需要提交后台数据库,结合素材给出的数据迁移文件,需要通过迁移文件实现数据表的定义。执行数据迁移只需要在控制台cmd.exe中执行以下命令即可:

php artisan migrate

在执行过程中需要注意首先创建数据库laravel之后再执行的路径并选择正确路径,结合自己文件目录结构确定路径,执行过程运行截图如下所示:

385ab70b220f32eab2b911e72a807034.png

文件迁移操作

文件迁移操作成功之后,可通过XAMPP提供的数据库管理功能查看是否迁移成功,如果迁移成功则能够查询到所创建的数据表。MySQL Admin查看结果如下:

4c2ef789facb40be83fe693dce7a4e29.png

迁移数据表成功

3、视图模板定义

Laravel提供Blade 模板引擎可以快速实现网页模板的定义,所谓模板是将各网页公共部分进行提取,一方面优化页面设计,提高开发效率,另一方面也降低了代码编写量。通过分析给出的register页面与ucenter页面具有公共部分为页头与页脚部分,即以下两个截图部分:

cdfc494fc1716afb7a6045fd70ea0006.png

页头公共区域

709b5fcc8df6dbe79dd5429cf03d749e.png

页尾公共区域

用户注册页面公共部分描述如上图,因此可以针对公共部分设置页面布局模板,本例文件为layout.blade.php。Blade 模板扩展名为.blade.php。该文件缩略图如下:

7ac512961161b0bdb1abfc43db030684.png

公共布局模板

该模板运行其它页面扩展css部分、Javascript部分即编写页面内容content部分。以该模板为例,register页面、ucenter页面则可以进行修改。其中register页面保存为register.blade.php模板。通过extend与页面布局模板建立关联,并对layout指定部分进行了继承、扩展与实现编写。register.blade.php模板描述如下:

aad1cd470245491f77089d1ca8cf855c.png

register.blade.php模板

4、路由及控制器的实现

路由主要将用户请求进行转发,可通过view(),跳转到指定页面,也可以通过控制器交由controller控制器处理。本例主要页面只有两个,因此定义了两条路由规则,路由规则如下:

85f1671f92a1f20385db4aa7552ba5fe.png

路由定义

路由定义描述如上所示,其中第一个主要用于解决页面导航部分使用的html静态URL,将其请求转到View视图文件夹下的register.blade.php。第二个路由主要用于解决表单提交操作,将表单POST提交交给PostController控制器处理。控制器其实就是一个类,PostController控制器处理请求的方法即为store方法。该控制器设计描述如下:

e5613a10c43c5ff1d3ade517b01cbcce.png

表单处理控制器

表单处理控制器描述如上,需要注意所有的控制器都必须存放到指定的文件夹下,路径描述如下:

htdocslaravel6appHttpControllers

在该控制器中我们使用了DB::table->insert实现数据的插入操作,使用Session::put()实现会话标识的存储。并通过request变量传递前端填写的表单值。数据存储成功之后使用View跳转到ucenter页面,并在跳转过程使用数组进行了参数的传递,最后在ucenter页面显示所传递的信息。由于篇幅限制数据操作及Session部分本文不再展开阐述。【本文由kid编程首发于今日头条】


本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。期待大家关注!相关文章链接如下:

数据库教程-MySQL数据库入门



推荐阅读
author-avatar
seoer
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有