资源描述
华北电力大学毕业设计(论文)撰写格式:
1、封面(院系领取封面纸,按规定模板自行打印)
2、正文页面设置:纸张规格为A4 ;版面上空2.5cm,下空2cm,左空2.5 cm,右空2 cm(左装订)。
摘 要
随着生活水平的提高,食堂的菜品越来越多样,学生的选择也越来越多。为了便于师生即时了解食堂菜品的供应情况,从而选择自己最想吃的菜,建立一个菜品信息能够即时更新、展示的网站。同时师生也可以留言评价,促进食堂改进口味,更好的服务于师生。现在校园里尚未有相关类似的网站,这个网站的建立能极大地便利学生的生活。
本管理系统的开发采用PHP、laravel开发技术,与MySQL数据库连接,应用了JQuery、bootstrap等美化网页界面,实现一个完整的食堂菜品展示系统的体现。
本系统包含了四部分功能:展示菜品信息,管理菜品信息,对菜品进行评价、星级打分,管理评价内容;将系统中的展示、评价、管理以及数据库信息操作进行具体实现。
关键词:菜品展示,PHP,MySQL,评价打分
ABSTRACT
With the improvement of living standards, more and more dishes appearing in the dining hall, and the choice of students is becoming more and more. In order to facilitate the teachers and students to understand the canteen food supply situation, so as to choose what they own most want to eat , the establishment of a food information can be updated immediately, the display of the site. At the same time, teachers and students can also comment on the evaluation, to promote the improvement of the dining room taste, better service to teachers and students. There has not been a similar site on campus, the establishment of this website can greatly facilitate the lives of students.
This management system is developed using laravel, PHP development technology, and MySQL database connection, the application of the JQuery, bootstrap and other landscaping web interface, to achieve a complete dining hall dishes display system.
The system contains four functions: show food information, the management information of the dishes and dishes of evaluation, star ratings, management evaluation contents; system display, evaluation, management and database information operation were concrete realization.
KEY WORDS: Dishes show, PHP,MySQL,Evaluation of scoring
目 录
摘 要 I
ABSTRACT II
第1章 系统概述 1
1.1 选题背景及意义 1
1.2 国内外研究现状 1
1.3 主要研究内容和预期目标 2
1.3.1 研究内容 2
1.3.2 预期目标 2
第2章 系统开发技术及工具简介 3
2.1 系统关键技术 3
2.1.1 PHP技术 3
2.1.2 JavaScript技术 3
2.1.3Jquery 3
2.2 系统开发工具介绍 4
2.2.1 NetBeans IDE 8.1 4
2.2.2 MySQL 5
2.2.3 phpMyAdmin 6
第3章 系统需求分析与概要设计 7
3.1 系统需求分析 7
3.1.1 系统功能分析 7
3.1.2 系统用例图 7
3.2 系统体系结构设计 8
3.3 系统模块设计 8
3.3.1 模块结构设计 8
3.3.2 菜品展示模块 9
3.3.3打分评论模块 9
3.3.4 管理菜品模块 10
3.3.5管理评论模块 10
3.4 数据库设计 10
第4章 食堂菜品管理系统的详细设计与实现 13
4.1 系统数据库连接 13
4.2 管理员账号登录模块 13
4.3 后台管理模块 15
4.3.1 菜品管理模块 15
4.3.2 评论管理模块 19
4.4 前台展示模块 20
第5章 系统测试 23
5.1 功能测试 23
5.1.1 登录测试 23
5.1.2 管理菜品测试 24
5.1.3 管理评论测试 26
5.1.4 菜品展示测试 27
5.1.5 菜品评论测试 28
5.2 兼容性测试 28
第6章 结论与展望 30
6.1课题工作总结 30
6.2 工作展望 30
参考文献 31
致 谢 32
第1章 系统概述
1.1 选题背景及意义
现今大学的校园规模越来越大,校园里食堂餐厅的数量和种类也日益增多。学生们经常困扰在哪个食堂吃什么菜,或者想选择某种口味的饭菜,但却不知道去哪个食堂才能吃到。为了解决学生们的用餐问题,也为了能更好的宣传食堂的特色菜品,需要一个能展示各个食堂所有菜品的平台。
过去20年间,中国互联网技术得到飞速发展,建立的网站日益增多。各种类型的网站的建立让人们和世界更加贴近,原本很难获得的知识、资讯,如今通过互联网上丰富的资源平台,任何人只要有心,都可以方便、及时获得。
校园信息展示类的网站,能让学生有效及时了解校园相关信息。绝大多数的大学如今都已经有了自己的校园网站,这些网站的建立极大地方便了学生们的生活。校园食堂菜品展示网站也成为大多数学校必不可少的网站。
1.2 国内外研究现状
大众点评是中国领先的本地生活信息及交易平台,也是全球最早建立的独立第三方消费点评网站。大众点评不仅为网友提供商户信息、消费点评及消费优惠等信息服务,同时亦提供团购、电子会员卡及餐厅预订等O2O(Online To Offline)交易服务。大众点评是国内最早开发本地生活移动应用的企业,已经成长为一家移动互联网公司,大众点评移动客户端已成为本地生活必备工具。
2003年,大众点评网创始人张涛经过10年的美国求学之路回到自己的家乡上海。热爱美食的他发现寻找美食却成为一个难题,各种美食广告让人眼花瞭乱无从选择。他想起了在国外生活时曾有一本曾十分畅销的通过问卷向公众收集餐馆评论的书籍《查氏餐馆评鉴》;还有刚刚兴起的 《维基百科》网站,全部交由用户进行内容维护。再想到曾创造互联网神话的亚马逊网站,以备受欢迎的书评吸引了众多的用户。这时,有IT咨询背景的张涛脑海中闪现出一个念头:为何不把餐馆的口碑信息传播互联网化呢,让大家告诉大家,来自大众切身的点评就“准确”.“客观”性而言,并不输给权威刊物。大众点评网的模型就此产生[22]。
网站的优势:主要以个体网络用户对各商家进行评判打分,形成行业口碑,进行商户的推广、宣传、评价行为。并且利用会员制绑定用户,通过积分返点、定期发放优惠劵以及其他福利措施增加会员的参与度,吸引更多人成为会员。 其次,创建“部落”,提供广阔的会员交流平台,通过人际传播方式,推广商家优惠活动。部落分类细致,每个部落各有主题,既有针对性和专一性,又便于用户分类快速寻找定位,使得纷繁复杂的信息得到有效分流,更容易被获取、接收与传播。
大众点评网经过多年的经验,提出全面整合营销解决方案,6大推广方式量身定制:
(1) 团购: 高效的短期营销工具
(2) 优惠券:精确传递优惠信息,持续刺激消费欲望
(3) 关键词:潜在客户找商家,首先看到
(4) 签到: 签到推广活动,让顾客帮忙打广告
(5) 城市通:个性化页面,及时市场反馈
(6) 互动性:通过消费者拍照点评,让消费者有更好的选择
1.3 主要研究内容和预期目标
1.3.1 研究内容
(1) 认真做好前期的资料收集工作,主要包括查找国内外关于点评网站的最新文献和实现软件系统相关工具及技术。
(2) 全面了解学生和食堂在网站功能、性能方面的需求。
(3) 对展示网站进行总体结构设计、界面设计和数据库设计。熟悉NetBeans IDE 8.1编程环境,能够快速调试程序中的各种错误,合理管理程序代码。
(4) 基于laravel框架,实现食堂菜品展示系统的主要功能。
(5) 在此基础上,按规定格式编写毕业设计论文,要求章节清晰,结构合理,论述观点正确,文字表达流畅,内容丰富,充分反映设计的成果。
1.3.2 预期目标
(1) 管理员管理功能:能注册,删除,修改,查询管理员信息
(2) 菜品管理功能:能添加,删除,修改,查询菜品信息
(3) 能添加,删除,修改,查询菜品类别信息
(4) 打分评价功能:师生能对菜品进行打分评价
(5) 菜品展台:包括新品上架、销售排行等
第2章 系统开发技术及工具简介
2.1 系统关键技术
2.1.1 PHP技术
PHP是一种流行的通用的脚本语言,特别适合于Web开发。PHP是一种为Web开发设计的服务器端脚本语言同时也作为一种通用的程序设计语言。在1994年由Rasmus Lerdorf最初创建PHP。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。
PHP代码可以嵌入到HTML代码,也可以用于各种网站模板系统组合,网站内容管理系统和Web框架。PHP代码通常是由一个PHP解释器的实现在Web服务器或作为一个通用网关接口(CGI)可执行模块的处理。Web服务器结合的解释和执行PHP代码的结果,可以是任何类型的数据,包括图像和生成的网页。PHP代码可以执行的命令行界面(CLI),可用于实现独立的图形应用程序。
PHP被广泛移植,可以部署在大多数Web服务器上几乎所有的操作系统和平台,并且是免费的。
PHP语言的演变一直没有正式的书面形式规范或标准,直到2014年典型的PHP解释器成为事实上的标准。自2014起一直致力于创建一个正式的PHP规范。PHP与其他脚本语言的不同之处在于,PHP能够诞生并且发展到今天的规模,可以说是全世界各位免费代码开发者共同努力的结果。他是通过Internet把众多程序员的编程精粹汇聚,再由PHP开发者将其转化到程序设计语言中才诞生的,可以说,PHP是Internet的产物,是开放源代码自由交流的胜利成果。
2.1.2 JavaScript技术
JavaScript是一种广泛用于客户端的脚本语言,它用来给HTML网页增加动态功能,是网页开发不可或缺的伙伴之一。提起JavaScript,很多人都习惯性叫它的简称js,却又经常被误解为是Sun Microsystems公司的程序设计语言Java的简化版本,但是除了语句上有一些相似之处以及都能提供网页中的可执行内容之外,JavaScript和Java是毫不相干的。相似的名称只不过是一种营销策略罢了。JavaScript技术能使整个网站项目活了起来,能控制文档的外观和内容,能实现对浏览器的控制以及与表单的交互。
2.1.3Jquery
JQuery是继prototype之后又一个优秀的Javascript库。它是轻量级的js库 ,其兼容性十分恐怖,被大大小小各类浏览器所支持,所以开发中若用到它不用为环境兼容性测试的过程发愁。JQuery最大的优势便是研究他的人很多,你可以在很多论坛、国内学习网站、国外大神网站上找到它的诸多神奇使用方法。它的主要作用在于网站信息交互,是前台后台数据的传输变得极为方便起来。当然,它的使用方法也极为简单,只需直接调用id即可。
2.2 系统开发工具介绍
2.2.1 NetBeans IDE 8.1
NetBeans 由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。
NetBeans IDE可以让你快速轻松地开发java桌面,移动和Web应用程序,以及HTML5应用程序使用HTML,JavaScript,CSS。IDE还提供了一个很好的工具集给PHP和C / C++开发者。它是免费和开放源码,并有一个大社区的用户和开发者在世界各地。
IDE不仅仅是一个文本编辑器。NetBeans编辑器缩进线,配词和括号,并强调源代码的语法和语义。它可以让你轻松地重构代码,用一系列的方便和功能强大的工具,同时它还提供了代码模板,编码提示和代码生成器。
NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以通过扩展插件来扩展功能。因为编辑器具有可扩展性,可以支持许多其他语言的支持。该编辑器支持多种语言java、C、C++、XML和HTML,PHP,Groovy,javadoc,JavaScript和JSP。
在IDE中,对于java SE ,HTML5,java EE,PHP,C / C++和Java ME应用程序,设计了GUI,能迅速和流畅地使用编辑和拖放工具。对于Java SE应用,NetBeans GUI生成器自动处理正确的间距和对齐方式,同时支持就地编辑。
有缺陷的代码增加更长的时候成本还不确定。NetBeans提供了静态分析工具,特别是整合与广泛使用的FindBugs的工具,用于识别和处理java代码中常见问题。此外,调试器可以让你在你的源代码中设置断点,添加字段名表,通过你的代码,运行到方法,采取快照和监控执行当它发生时。
NetBeans平台是Swing应用程序的通用框架。它提供了“管道”,在之前,每个开发者都必须自己写保存状态,连接到菜单项,工具栏和键盘快捷键,窗口管理等等。NetBeans平台提供了一个可靠的和灵活的应用架构。你的应用程序不必像IDE。它可以节省你多年的开发时间。NetBeans平台给你一次免费的测试架构。鼓励可持续发展的实践。因为NetBeans平台的体系结构是模块化的,很容易创造强大的和可扩展的应用程序。该平台的特点是:
(1) 用户管理界面(如菜单和工具栏)
(2) 用户设置管理
(3) 存储管理(保存和加载任何类型的数据)
(4) 窗口管理
(5) 向导框架(支持一步一步的对话框)
(6) NetBeans视觉库
(7) 集成开发工具
2.2.2 MySQL
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的特性:
1) 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2) 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3) 为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4) 支持多线程,充分利用CPU资源
5) 优化的SQL查询算法,有效地提高查询速度
6) 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7) 提供TCP/IP、ODBC和JDBC等多种数据库连接途径
8) 提供用于管理、检查、优化数据库操作的管理工具
9) 可以处理拥有上千万条记录的大型数据库
MySQL的应用:
与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是自由或开放源码软件(FLOSS),因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。
MySQL管理:
可以使用命令行工具管理MySQL数据库(命令mysql 和 mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser。 phpMyAdmin是由php写成的MySQL资料库系统管理程式,让管理者可用Web界面管理MySQL资料库。phpMyBackupPro也是由PHP写成的,可以透过Web介面创建和管理数据库。它可以创建伪cronjobs,可以用来自动在某个时间或周期备份MySQL 数据库。 另外,还有其他的GUI管理工具,例如早先的mysql-front 以及 ems mysql manager,navicat 等等[23]。
2.2.3 phpMyAdmin
phpMyAdmin是一个用PHP编写的免费工具软件,用于处理MySQL的网络管理。phpMyAdmin可以支持广泛的基于MySQL和MariaDB操作。常用的操作(管理数据库、表、列、关系、索引、用户、权限等)可以通过用户界面进行,而你仍然有直接执行任何SQL语句的能力。phpMyAdmin是由PHP开发的一个类似于SQL Server的可视化图形管理工具。有了该工具,PHP开发者就不必通过命令来操作MySQL数据库了,可以像SQL Server那样通过可视化的图形来操作数据库。phpMyAdmin可以运行在各种版本的PHP及MySQL下,对数据库进行操作,如创建、修改和删除数据库、数据表以及生成MySQL数据库脚本文件等[24]。
第3章 系统需求分析与概要设计
3.1 系统需求分析
3.1.1 系统功能分析
本系统是一个完整的菜品展示系统的微型体现,取其中的较为常用颇为重要的三部分进行设计实现,数据根据食堂具体提供的数据进行了数据模拟,意在基本体现食堂菜品展示管理系统的基本功能,完成系统的设计与实现。系统主要包括如下四大块:前端食堂菜品展示、学生能对菜品进行评价打分和后台对菜品、评论进行管理。
其中,食堂菜品展示的意义在于展示食堂的菜品,需要展示的内容有菜品的原料、口味、价格和菜品的图片。
学生能对菜品进行评价打分的意义在于能让其他学生进一步了解相关菜品的口味,受欢迎程度。也能让食堂对菜品的受欢迎状况有初步了解并做出相应的反馈,减少供应量,提高评论普遍较好的菜品的供应量。
食堂菜品管理主页的意义在于对食堂的菜品以及学生的评论进行管理,其使用权限一般为管理员,以防止信息泄露等状况发生。
综上,为完成食堂管理系统的设计与实现,需完善以下功能:
(1) 确保用户界面友好、易于辨识操作上手
(2) 添加一定程度的网页动画以实现界面升华效果
(3) 所有菜品用文字加图片的形式展示,并且可以进行评论打分
(4) 对菜品和评论管理体现增加、删除、修改、查询四大功能
3.1.2 系统用例图
用例图
图3-1 系统总体用例图
用例图说明:
菜品展示:通过文字和图片展示菜品的原料、口味等
评论打分:通过文字和星级打分对菜品进行评价
管理菜品:对展示菜品的文字,图片进行管理
管理评论:对用户的评论进行管理
3.2 系统体系结构设计
本系统体系结构如下图3-2所示:
表现层
数据层
业务逻辑层
图3-2 体系结构图
本系统采用的是传统的三层B/S结构,通过表现层-业务逻辑层-数据层的链接完成整个系统[16]。其中,表现层主要为网站页面,通过.html+.view直接展示以及javascript修饰,给用户以美观友好的界面。在PHP开发中,业务逻辑层主要通过.php与Controller类的结合完成数据读取和数据处理。本系统的数据层采用的是MySQL数据库进行数据存储,用phpMyAdmin进行数据操作编辑。
3.3 系统模块设计
3.3.1 模块结构设计
整个系统主要分为四大部分:前端菜品展示模块、菜品评论打分模块和后台管理菜品、评论模块,整体可达到实现一个完整的菜品展示的目的。系统模块结构图如图3-3所示:
食堂菜品展示系统
后台
前端
管理评论
管理菜品
打分评论
菜品展示
删除评论
修改评论
删除菜品
添加菜品
图片显示
星级打分
文字评论
文字显示
图3-3 系统模块结构图
3.3.2 菜品展示模块
在一个网站中,文字和图片是最有表现力的元素。文字能详细准确的描述网页的功能,简明易懂,提升用户的用户体验。图片不仅能够增加网页的吸引力,同时也大大地提升了用户在浏览网页的体验。图片的展示形式丰富多样,不同形式的图片展现也让浏览网页的乐趣变得更加多样化!
在本模块中,文字和图片统一在一张数据表中,为了充分展示菜品,文字需要描述菜品的风味,食材,份量,供应时间,而图片必须是如实拍摄的菜品照片。图片的显示采用的是表单的提交技术,后台上传的图片被统一存放在’public/images’文件夹里,前台显示是通过这个路径显示图片。
此外,菜品评价中星级打分的平均分也将显示在首页,以便学生能一眼分辨菜品的受欢迎程度。平均分的获取利用sql语句,从菜品数据表和评论数据表中查找同一菜品名,再获得分数计算平均值,根据平均值显示星星的数量,即菜品的分数。
3.3.3打分评论模块
打分功能是本系统中最重要的功能,学生能充分表达自己对菜品的感受和建议,体现一个菜品的受欢迎程度。学生也可以从其他人的评论中了解吃完该菜品的直观感受,判断是否适合自己。
在本模块中,评论需要有昵称,邮箱等,方便食堂的管理人员能及时的反馈给学生。同时评论区不同的学生间可以互相留言,讨论菜品的详细风味,口感。
星级打分功能采用一个jQuery Raty评分插件,支持丰富的传入参数和回调函数,可以自定义图标,创建各种评级组合,星星数量,每一颗星星的注释,可以在当一个星星被点击时加回调函数。。
3.3.4 管理菜品模块
纵观诸多大大小小的管理系统,数据库的增加、修改、删除、查询都是最基本的功能[20-21],本系统自然也是不可缺少的功能,它决定系统自身是否具备直接修改数据库端的能力,逻辑层和数据层是单向连接还是双向连接。本系统中,主要通过对菜品进行数据库表的直接操作,包括以下三点:
(1) 新增菜品
当食堂新增某种菜品时,就需要此功能,映射数据库菜品数据表的操作。
(2) 编辑菜品
当某种菜品的食材,风味等发生改变时,就需要对数据表中相应菜品的那一行进行修改操作。
(3) 删除菜品
当某种菜品因为季节原因,或者因为差评太多需要下架时,就需要将该菜品从网站上删除,即删除数据表中相应菜品对应的一行。
3.3.5管理评论模块
在学生可以自由评论的系统中,为了防止故意刷评论或者其他极端情况,合理保护食堂的利益,需要食堂管理员能对评论进行相应的管理。对于一部分评论可以进行编辑修改,此外那些恶意中伤的评论可以对其进行删除操作。
3.4 数据库设计
系统的数据库表主要包括菜品信息表、用户表、评论信息表、迁移数据表。
系统数据库的名称为laravel5,用户名为root,密码为123456。
(1) 菜品信息表(pages),如表3-1所示。表中记录的为各个菜品的标题、内容、图片、创建时间、跟新时间等属性。
表3-1菜品信息表(pages)
中文翻译
列名
数据类型
完整性约束
备注
菜品编号
id
int(10)
主键
AUTO_INCREMENT
菜名
title
varchar(255)
菜品描述
body
text
续表3-1
中文翻译
列名
数据类型
完整性约束
备注
用户名
user_id
int(11)
外键
创建时间
created_at
timestamp
更新时间
updated_at
timestamp
图片
pic
varchar(200)
(2) 用户表(users),如表3-2所示。表中记录的为管理员的名称、邮箱、密码等属性。
表3-2用户表(users)
中文翻译
列名
数据类型
完整性约束
备注
用户编号
id
int(10)
主键
AUTO_INCREMENT
用户名
name
varchar(255)
邮箱
email
varchar(255)
密码
password
varchar(60)
记住密码
remember_token
varchar(100)
创建时间
created_at
timestamp
更新时间
updated_at
timestamp
(3) 评论信息表(comments),如表3-3所示。表中记录的为评论的内容、评论者的昵称、邮箱等属性。
表3-3评论信息表(comments)
中文翻译
列名
数据类型
完整性约束
备注
评论编号
id
int(10)
主键
AUTO_INCREMENT
昵称
nickname
varchar(255)
邮箱
email
varchar(255)
内容
content
text
性别
sex
varchar(255)
星级评分个数
star
int(11)
创建时间
created_at
timestamp
更新时间
updated_at
timestamp
(4) 迁移数据表(migrations),如表3-4所示。Laravel中 Migrations把表结构存储为一个PHP类,通过调用其中的方法来创建、更改数据库。
表3-4 迁移数据表 (migrations)
中文翻译
列名
数据类型
完整性约束
备注
迁移表
migration
varchar(255)
主键
批次
batch
int(11)
第4章 食堂菜品管理系统的详细设计与实现
4.1 系统数据库连接
系统数据库采用MySQL数据库,laravel连接MySQL数据库需要如下步骤:
(1) 首先,使用迁移来定义数据表以容纳我们所有的任务,使用laravel的数据库迁移能用简单流畅的PHP代码来定义数据表的结构与修改。
(2) 打开文件夹`learnlaravel5/.env`,修改下面四项信息:
DB_HOST=localhost
DB_DATABASE=laravel5
DB_USERNAME=root
DB_PASSWORD=123456
(3) 新建一个名为laravel5的数据库,使用root账户直接操作。Laravel已经为我们准备好了Auth部分的migration,运行以下命令执行数据库迁移操作:
php artisan migrate。
(4) 至此,数据库的迁移已完成。
4.2 管理员账号登录模块
管理员进入系统后首先进入的是登录界面,管理员输入正确的用户名和密码登录后,才能使用本系统,登陆界面如下图4-1:
图4-1 登录界面
登录界面的布局文件为login.blade.php,其对应代码如下:
<form class="form-horizontal" role="form" method="POST" action="{{ url('/auth/login') }}">
<div class="form-group">
<label class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email" value="{{ old('email') }}">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="password">
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<div class="checkbox">
<label>
<input type="checkbox" name="remember"> Remember Me
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">Login</button>
<a class="btn btn-link" href="{{ url('/password/email') }}">Forgot Your Password?</a>
</div>
</div>
</form>
4.3 后台管理模块
管理员输入账号密码,进入如下图4-2所示的管理界面:
图4-2 后台管理界面
成功登录后,即进入到后台管理界面,该功能分为菜品管理和评论管理两大模块。
4.3.1 菜品管理模块
菜品管理模块提供了增加,编辑和删除菜品的功能,实现对菜品的有效管理。其界面如下图4-3所示:
图4-3 菜品管理界面
新增按钮的功能实现代码如下:
<a href="{{ URL('admin/pages/create') }}" class="btn btn-lg btn-primary">新增</a>
在Controllers里的功能实现代码如下:
public function create() {
return view('admin.pages.create');
}
点击新增按钮,出现创建页面,如下图4-4所示:
图4-4 创建页面
创建页面的实现代码如下:
public function store(Request $request) {
$this->validate($request, [
'title' => 'required|unique:pages|max:255',
'body' => 'required',
]);
$page = new Page;
$page->title = Input::get('title');
$page->body = Input::get('body');
$page->user_id = 1; //Auth::user()->id;
$page->canteen=0;
if ($request->hasFile('file')) {
$file = $request->file('file');
$filename = time() . rand() . '.' . $file->getClientOriginalExtension();
if ($file->move(public_path() . '/images', $filename)) {
$page->pic = $filename;
}
} else {
return Redirect::back()->withInput()->withErrors('没有图片!');
}
if ($page->save()) {
return Redirect::to('admin');
} else {
return Redirect::back()->withInput()->withErrors('保存失败!');
}
}
下面函数尤其要注意的是enctype="multipart/form-data的添加,保证表单能完整的传递文件数据。
<form action="{{ URL('admin/pages') }}" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="text" name="title" class="form-control" required="required">
<br>
<textarea name="body" rows="10" class="form-control" required="required"></textarea>
<br>
展开阅读全文