Laravel 4初级教程之页数、表单验证
1.构建页管理功能
运行命令:
php artisan generate:controller控制器控制器管理/页面控制器修改PagesController.php内容:
?phpnamespace应用程序\控制器\管理员;使用页面;使用输入、通知、重定向、哨兵、字符串;使用应用程序\服务\验证程序\页面验证程序;类页面控制器扩展\基本控制器{公共函数索引(){ return \ view :3360 make(' admin。页面。index ')-带(' pages ',page : all());}公共函数show($ id){ return \ view :3360 make(' admin。页面。show ')-with(' page ',page : find($ id))-with author(sentry 3360: find user byid(page : find($ id)-user _ id)-name);}公共函数create(){ return \ view 3360: make(' admin。页面。create’);} public function store(){ $ validation=new page validator;if($ validation-passs()){ $ Page=new Page;$ page-title=input : get(' title ');$ page-body=input :3360 get(' body ');$ page-user _ id=sentry :3360 getuser()-id;$ page-save();通知:成功('新增页面成功!');返回重定向:3360路由(' admin。页面。edit ',$ page-id);} return redirect :3360 back()-withInput()-带有错误($ validation-errors);}公共函数编辑($ id){ return \ view : make(' admin。页面。edit ')-with(' page ',page : find($ id));}公共函数更新($ id){ $ validation=新页面验证程序;if($ validation-passs()){ $ page=page : find($ id);$ page-title=input : get(' title ');$ page-body=input :3360 get(' body ');$ page-user _ id=sentry :3360 getuser()-id;$ page-save();通知:成功('更新页面成功!');返回重定向:3360路由(' admin。页面。edit ',$ page-id);} return redirect :3360 back()-withInput()-带有错误($ validation-errors);} public function destroy($ id){ $ page=page : find($ id);$ page-delete();通知:成功('删除成功!');返回重定向:3360路由(' admin。页面。索引');}}然后,打开http://localhost:8000/admin页面,用之前种子进去的账号密码登录,我们会得到一个错误:
类别应用程序\控制器\管理\页面控制器不存在这个文件明明已经有了啊,为什么Laravel报错说没有呢?原因在第二篇教程里,我在这里直接说了吧。因为这个类不在顶级命名空间下,而我们没有告诉Laravel我们已经新添了一个子命名空间下的类。我们现在来告诉它:
作曲家转储-自动加载,刷新,我们又会得到以下错误:
找不到视图[admin.pages.index].这时候,把我的视图中的整个页文件夹复制过去吧。
刷新。你会得到以下错误:
找不到类别"通知"这是因为我们还没有装这个设计者包,edvinaskrucas/notification,请自行安装3.0.1 版(4是为Laravel 5准备的),这是第三个小作业。一定要放在需要里面,要求-戴夫里面的包只在开发的时候使用。
这里的通知就是那个更好用的通知组件。
这个包装好以后,运行:
作曲家转储-自动加载然后在config/app.php里面恰当的位置分别增加下面两行:
Krucas \ Notification service provider ' ' Notification '=' Krucas \ Notification \ Facades \ Notification '恰当的位置很多人不理解,导致很多人出现了错误,解决方式也很简单:请直接参考我的示例代码:https://github。com/johnlui/Learn-Laravel-4/blob/master/app/config/app。服务器端编程语言(Professional Hypertext Preprocessor的缩写)
刷新,如果你看到以下界面:
恭喜你~页数的管理页面完成了!
2.表单验证
Laravel提供了原生的非常好用的表单验证功能,但是有时候验证规则需要复用,所以我们将利用强大的命名空间来实现代码复用,同时将展示Laravel之外的,PHP的命名空间带来的强大的组件化功能和模块解耦,HMVC什么的已经落后啦。
新建应用程序/服务/验证程序两级文件夹,并在composer.json的自动加载类别映射最后新增:
“App/services”这是在告诉composer:让我们将我下面的所有文件和子文件夹中的所有文件合并到您的命名空间树中!这样,app/services下的类可以声明自己的命名空间,子文件夹中的文件也可以声明属于子命名空间。这个文件夹将托管我们的表单验证组,但它也可以托管许多其他组件和模块,以实现完全解耦。
添加后,创建一个新的app/services/validator/validator . PHP文件:
?phpnamespace应用程序\服务\验证程序;抽象类Validator { protected $ datapublic $错误;公共静态$规则;public function _ _ construct($ data=null){ $ this-data=$ data? \ input 33603360 all();} public function passs(){ $ validation=\ validator : make($ this-data,static : $ rules);如果($ validation-passs())返回true$ this-errors=$ validation-messages();返回false}}创建一个新的app/services/validators/page validator . PHP文件:
?phpnamespace应用程序\服务\验证程序;class PageValidator扩展Validator { public static $ rules=array(' title '=' required ',' body'='required ',);}然后运行:
composer dump-自动加载此时,您可以尝试整个页面上的所有操作!创建、编辑、查看、删除,至此,页面管理全部完成!
大作业:目前Pages管理部分已经完成,但是Articles管理部分什么都没有。尽量模仿Pages的代码,完成一个像Pages这样的管理系统。提示:包括控制器、视图和表单验证。当你完成了文章的管理,Laravel就真的要开始了!
版权声明:Laravel 4初级教程之页数、表单验证是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。