手机版

Laravel 5框架入门(四)完结篇

时间:2021-09-09 来源:互联网 编辑:宝哥软件园 浏览:

页和评论将使用动人的提供的"一对多关系"。最终,我们将得到一个个人博客系统的雏形,并布置一个大作业,供大家实战练习。

1.初识动人的

Laravel雄辩的ORM是Laravel中非常重要的部分,也是Laravel能如此流行的原因之一。中文文档在:

1.http://laravel-china.org/docs/5.0/eloquent

2.http://www.golaravel.com/laravel/docs/5.0/eloquent/

在前面的教程中已经建立好的了解ravel 5/app/page。服务器端编程语言(Professional Hypertext Preprocessor的缩写)就是一个雄辩模型类:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)命名空间应用使用照明\数据库\雄辩\模型;类页面扩展了模型{ //}若想进一步了解雄辩的,推荐阅读系列文章:深入理解拉弗尔雄辩

2.创建评论模型

首先我们要新建一张表来存储评论,命令行运行:

复制代码代码如下:php工匠make:model模型注释

成功以后,修改移动文件学习拉威尔5/数据库/迁移/***_create_comments_table.php的相应位置为:

schema : create(' comments ',function(蓝图$ table){ $ table-增量(' id ');$table-string('昵称');$ table-string(' email ')-可空();$table-string('网站')-可空();$ table-text(' content ')-可空();$ table-integer(' page _ id ');$ table-时间戳();});之后运行:

复制代码代码如下:php工匠迁移

去数据库里瞧瞧,评论表已经躺在那儿啦。

3.建立"一对多关系"

修改页模型:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)命名空间应用使用照明\数据库\雄辩\模型;类页扩展了model { public function hasManyComments(){ return $ this-有很多(' App \ Comment ',' page_id ',' id ');}}搞定啦~雄辩中模型间关系就是这么简单。

模型间关系中文文档:http://laravel-中国。org/docs/5.0/雄辩#关系

4.前台提交功能

修改评论模型:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)命名空间应用使用照明\数据库\雄辩\模型;类别注释扩展了模型{ protected $fillable=['昵称','电子邮件','网站','内容,' page _ id '];}增加一行路由:

复制代码代码如下:路由:帖子('评论/商店','电子邮件保护');

运行以下命令创建评论控制器控制器:

复制代码代码如下: PHP工匠制作:控制器注释控制器

修改注释控制器:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)命名空间应用\ Http \控制器使用应用\ Http \请求使用app \ Http \ Controller \ Controller;使用照明\ Http \请求使用重定向、输入;使用App \评论;类注释控制器扩展了控制器{公共函数存储(){如果(注释:创建(输入3360: all())} { return redirect :3360 back();} else { return redirect : back()-withInput()-有错误('评论发表失败!');} }}修改视图学习拉威尔5/资源/视图/页面/show.blade.php:

@ extends(' _ layouts。默认')@部分('内容')H4 ahref='/'返回首页/a/H4 h1样式=' text-align :居中;边距-top : 50px;{ { $ page-title } }/h1 HR div id=' date ' style=' text-align : right;'{ { $ page-updated _ at } }/div div id=' content ' style=' padd : 50px;'p { { $ page-body } }/p/div div id=' comments ' style=' margin-bottom : 100px;'@ if(count($ errors)0)div class=' alert alert-danger ' strong呜呜!/strong您的输入有一些问题,brbr ul @ foreach($ errors-all())as $ error)Li { { $ error } }/Li @ endforeach/ul/div @ endif div id=' new ' form action=' { { URL(' comment/store ')} '方法='POST '输入类型='隐藏'名称='_token '值=“{ { csrf _ token()} }”输入类型='隐藏'名称='page_id '值=' { { $ page-id } } ' div class=' required=' required '/div class=' form-group '标签邮件地址/标签输入类型=' email ' name=' email ' class=' form-control ' style=' width : 300 px;/div class=' form-group '标签一些页面/标签输入类型='text '名称='网站class=' form-control ' style=' width : 300 px;/div class=' form-group '标签内容/标签文本区域名称=' content ' id=' newFormContent ' class=' form-control ' rows=' 10 '必需='必需'/文本区域/div按钮类型=' Submit ' class=' BTN BTN-LG BTN-success col-LG-12 ' Submit/button/form/div脚本函数reply(a){ var昵称=a . parentnode。parentnode。第一个孩子。下一个可能。getattribute(' data ');var textArea=文档。getelementbyid(' new form content ');文本区。innerhtml="@ "昵称"";}/script div class=' conmments ' style=' margin-top : 100px;@ foreach($ page-有许多注释作为$ comment)div class=' one ' style=' border-top : solid 20px # EFE fef;padding: 5px 20px 'div class='昵称数据=' { $ comment-昵称} } ' @ if($ comment-网站)a href=' { $ comment-网站} } ' H3 { $ comment-昵称} }/H3/a @ else H3 { { $ comment-昵称} }/H3 @ endif h6 { { $ comment-created _ at } }/h6/div class=' content ' p style=' padd : 20px;'{ { $ comment-content } }/p/div div class=' reply ' style=' text-align : right;padd : 5px ' a href=' # new ' onclick=' reply(this);'回复/a/div/div @ endforeach/div/div @ end section前台评论功能完成。

查看效果:

5.后台管理功能

修改基础视图学习拉威尔5/资源/视图/app.blade.php为:

!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 ' title laravel/title link href='/CSS/app。CSS ' rel='样式表!-字体-链接。useso。com/CSS?family=Roboto:400,300' rel='样式表type=' text/CSS '/head body nav class=' nav bar nav bar-default ' div class=' container-fluid ' div class=' nav bar-header ' button type=' button ' class=' nav bar-切换折叠' data-toggle='折叠' data-target=' # bs-示例-导航栏-折叠-1 ' span class=' Sr-only '切换导航/span class='图标栏'/span span class='后台首页/a/Li/ul ul class='导航条-nav ' lia href='/admin/comments '管理评论/a/Li/ul ul class='导航条-导航条-右' @ if(auth 3360: guest())lia href='/auth/log in ' log in/a/Li lia href='/auth/register ' register/a/Li @ else Li class=' drop ' a href=' # class=' drop-toggle ' data-toggle=' drop ' role=' button ' aria-expanded=' false ' { auth 336033: user()-name-脚本-脚本src=' http://cdnjs。 cloudflare。com/Ajax/libs/jquery/2。1 .3/jquery。量滴js /脚本脚本src=' http://cdnjs。cloudflare。com/Ajax/libs/Twitter-bootstrap/3。3 .1/js/自举。量滴js /脚本/body/html修改后台路由组(增加了一行):

路由:组(['前缀'='Admin ','命名空间'=' Admin ','中间件='auth'],function(){ route :3360 get('/','[email protected]');Route:resource('pages ',' pages controller ');Route:resource('注释、“注释控制器”);});创建管理员\注释控制器:

复制代码代码如下: PHP工匠制作:控制器管理/评论控制器

管理/评论控制器要有查看所有、查看单个、开机自检更改、删除四个接口:

?服务器端编程语言(Professional Hypertext Preprocessor的缩写)命名空间应用\ Http \控制器\管理使用应用\ Http \请求使用app \ Http \ Controller \ Controller;使用照明\ Http \请求使用App \评论;使用重定向、输入;类注释控制器扩展了控制器{公共函数索引(){返回视图(' admin。评论。index ')-带注释(注释: all());}公共函数编辑($ id){返回视图(' admin。评论。edit ')-带注释(注释: find($ id));}公共函数更新(请求$request,$id) { $this-validate($request,['昵称'='必需','内容'='必需',]);if (Comment:where('id ',$ id)-update(输入3360:除了([' _ method ',' _ token '])))){ return redirect 3360: to(' admin/comments ');} else { return redirect : back()-withInput()-有错误('更新失败!');} } public function destroy($ id){ $ comment=comment : find($ id);$ comment-delete();返回将:重定向到(' admin/comments ');}}接下来创建两个视图:

学习拉威尔5/资源/视图/admin/注释/索引。刀锋。PHP:

@ extends(' app ')@ section(' content ')div class=' container ' div class=' row ' div class=' col-MD-10 col-MD-offset-1 ' div class=' panel panel-default ' div class=' panel-heading '管理评论/div class=' panel-body ' table class=' table-striped ' tr class=' row ' th class=' col-LG-4 ' Content/th class=' col-LG-2 ' User/th class=' col-LG-4 ' Page/th class=' col-LG-1 '编辑/th类=col-LG-1 '删除/th/tr @ foreach($ comments as $ comment)tr class=' row ' TD class=' col-LG-6 ' { $ comment-content } }/TD TD class=' col-LG-2 ' @ if($ comment-网站)a href=' { $ comment-网站} } ' H4 { $ comment-昵称} }/H4/a @ else H3 { $ comment-昵称} }/H3 @ endif { { $ comment-email } }/TD class=' col-LG-4 ' $ comment-page _ id)} } ' target=' _ blank ' { App \ 第3360:页查找($ comment-page _ id)-title } }/a/TD TD TD class=' col-LG-1 ' a href=' { { URL(' admin/comments/'). $comment-id ./edit ')} } ' class=' BTNBTN-成功'编辑/a/TD/TD class=' col-LG-1 '表单操作='{{ URL('admin/comments/').$comment-id) }} '方法=' POST '样式='显示:行内;'输入名称=' _ method ' type=' hidden ' value=' DELETE '输入类型=“隐藏”名称=“_ token”值=“{ { csrf _ token()}”按钮类型='submit' class='btn btn-danger '删除/button/form/TD/tr @ endforeach/table/div/div/div/div @ endsectionlearnravel 5/resources/view/admin/comments/edit。刀锋。PHP:

@ extends(' app ')@ section(' content ')div class=' container ' div class=' row ' div class=' col-MD-10 col-MD-offset-1 ' div class=' panel panel-default ' div class=' panel-heading '编辑评论/div class=' panel-body ' @ if(count($ errors)0)div class=' alert alert-danger ' strong呜呜!/strong您的输入出现了一些问题,brbr ul @ foreach($ errors-all()as $ error)Li { { $ error } }/Li @ endforeach/ul/div @ endif form action=' { { URL(' admin/comments/')' .$comment-id) }} '方法='POST '输入名称='_method '类型='隐藏'值='PUT '输入类型='隐藏'名称='_token '值='{{ csrf_token() } '输入类型='隐藏'名称='page_id '值=' { $ comment-page _ id } } '昵称:输入类型=“文本”名称='昵称'类=“表单控件”必需='必需'值=' { { $ comment-昵称}}' br电子邮件提交修改/按钮/表单/div/div/div/div/后台管理功能完成,查看效果:

6.大作业依赖于页的评论功能已经全部完成,个人博客系统雏形诞生。在本系列教程的最后,布置一个大作业:构建出文章的前后台,并且加上文章与评论的一对多关系,加入评论和评论管理功能。在做这个大作业的过程中,你将会反复地回头去看前面的教程,反复地阅读中文文档,会仔细阅读我的代码,等你完成大作业的时候,Laravel 5就真正入门啦~~

以上所述就是本文的全部内容了,希望大家能够喜欢。

版权声明:Laravel 5框架入门(四)完结篇是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。