摘要:在中封装属性来统一管理视图中的路由在应用程序中拥有数十个甚至数百个视图并不罕见。很快就会对视图中使用的路由管理失控。可以想象如果你在视图中做了多少这样的事情。这样做的好处在于,你修改视图中的任何路由,只需编辑两个文件,而不是数百个。
在Eloquent中封装URL属性来统一管理视图中的路由
在 Laravel 应用程序中拥有数十个甚至数百个视图并不罕见。很快就会对视图中使用的路由管理失控。可以想象如果你在视图中做了多少这样的事情。
$user->id]) }}">{{ $user->name }}
如果想对路由名称或者默认查询参数值进行修改,就需要在整个应用中进行大量的字符串替换操作,但是这会带来重复性的工作量,同时也可能会漏掉一些地方。
那我们可以做些什么来更好的处理这个问题呢?下面有两种实现方式。
第一种: 修改Eloquent// app/Models/User.php然后在视图中就可以这样使用
{{ $user->name }}感觉写的很干净,是吧?但对于高级开发人员,你可能希望采用下一种方法。
第二种. 在Eloquent中使用URL Presenter咋一看你可能会觉的比较眼熟,是的,这里我们定义一个url属性,但与一般写法不同的是是我们会返回一个 presenter 实例。
// app/Models/User.php// app/Presenters/User/UrlPresenter.php user = $user; } public function __get($key) { if(method_exists($this, $key)) { return $this->$key(); } return $this->$key; } public function delete() { return route("users.delete", $this->user); } public function edit() { return route("users.edit", $this->user); } public function show() { return route("users.show", $this->user); } public function update() { return route("users.update", $this->user); } }然后就可以这样使用
{{ $user->name }}如上,现在的视图并不关心我们如何确定URL,只是返回一个URL即可。 这样做的好处在于,你修改视图中的任何路由,只需编辑两个文件,而不是数百个。
关于更多PHP的使用,请前往 PHPCasts社区
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/28609.html
摘要:新增一篇新闻新增失败输入不符合要求请输入标题请输入内容新增文章上面代码中的是为了防攻击的,每个表单都必须存在。 本文我将结合简单例子,完成laravel框架下的增删改查,希望会对大家有所帮助。在进行之前,大家应该保证自己的数据库链接无误,artisan命令能正常使用,路由链接无问题。 一、创建控制器、路由避免影响其他路由,我们先注释掉之前联系时编写的所有路由。因为上一章我们已经学会建立...
摘要:原文来自免费视频教程地址期间受到很多私事影响,终于还是要好好写写的教程了。我们来实现这个功能显示文章详情通过文章展示来快速体验上面的流程注册路由来到中,我们增加一个路由上面的路由指定我们需要加载中的方法。 原文来自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...
摘要:正文架构概览正文架构概览接触大概一个月吧,期间写了个项目,趁现在稍微有点时间,来回顾梳理一下。里的模块,并不等同于项目中的模块概念。当然,这只是我目前阶段的理解。声明 本系列文章内容梳理自以下来源: Angular 官方中文版教程 官方的教程,其实已经很详细且易懂,这里再次梳理的目的在于复习和巩固相关知识点,刚开始接触学习 Angular 的还是建议以官网为主。 因为这系列文章,更多的会...
阅读 2955·2021-09-10 10:50
阅读 3136·2019-08-30 14:19
阅读 3474·2019-08-29 17:31
阅读 3198·2019-08-29 16:43
阅读 2154·2019-08-29 14:05
阅读 2060·2019-08-29 13:17
阅读 2014·2019-08-26 13:25
阅读 1715·2019-08-26 12:20