首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一种 Laravel 中简单设置多态关系模型别名方式

作为 Laravel 重度使用者肯定都对多态关系不陌生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型标签模型关系就是多态多对多(Many To Many (Polymorphic...我已经至少出现这个问题 3 次了,所以我一直在纠结有没有更好方法,今天突然灵机一动,实现了一个看起来似乎是一个不错方式,分享给大家。...思路来源 我尝试跟踪了一遍源码,发现模型中有一个方法 getMorphClass,多态关联时候,就是用它来取目标对象类型名称,默认返回类名: public function getMorphClass...; class Post extends Model { use UseTableNameAsMorphClass; //... } 友情提示 当然,如果你习惯给表名加前缀,或者你表名模型名不太一致...References [1] 多态多对多(Many To Many (Polymorphic)): https://laravel.com/docs/6.x/eloquent-relationships

2.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

详解Laravel设置多态关系模型别名方式

作为 Laravel 重度使用者肯定都对多态关系不默生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型标签模型关系就是 多态多对多(Many To Many (Polymorphic...我已经至少出现这个问题 3 次了,所以我一直在纠结有没有更好方法,今天突然灵机一动,实现了一个看起来似乎是一个不错方式,分享给大家。...思路来源 我尝试跟踪了一遍源码,发现模型中有一个方法 getMorphClass ,多态关联时候,就是用它来取目标对象类型名称,默认返回类名: public function getMorphClass...Eloquent\Model; class Post extends Model { use UseTableNameAsMorphClass; //... } 友情提示 当然,如果你习惯给表名加前缀,或者你表名模型名不太一致...总结 以上所述是小编给大家介绍Laravel设置多态关系模型别名方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。在此也非常感谢大家对ZaLou.Cn网站支持!

1.9K21

orm 系列 之 Eloquent演化历程2

,也是laravel中一大亮点Artisan,Artisan是 Laravel 自带命令行接口名称,此处不做具体介绍了,有机会再细说,当我们在命令行中执行php artisan command时候...本文最后讲下Eloquent中新增对象之间关系多态关系,以下内容摘自[ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系 表结构 多态关联允许一个模型在单个关联下属于多个不同模型...例如,假设应用用户既可以对文章进行评论也可以对视频进行评论,使用多态关联,你可以在这两种场景下使用单个comments表,首先,让我们看看构建这种关联关系需要表结构: posts id - integer...此处为什么会出现Manager,当项目变复杂后,我们很难简单和Eloquent内部组件进行有效功能了,这个时候需要一个项目的门面,帮助我们和外界沟通,外界尽可能简单使用Eloquent,于是就出现了...参考 [ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系

2.4K30

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent 对一对多关系处理以及在 Laravel Administrator...您数据库可能是彼此相关。比方,一篇博客文章可能有很多评论,或者一个订单下订单用户相关。Eloquent 使得管理和处理这些关系变得简单。...Laravel 提供了四种类型关系: –一对一 –一对多 –多对多 – 多态关系 一对多 一个一对多关系样例是一篇博客文章有很多评论或者一个课程有的多次分数信息等。...> 定义之相应逆向关系 Model: 通过以上步骤处理。表表之间一对多关系已确立, 以下将介绍在Laravel Administrato 后台中实现 下拉列表查询、绑定等应用 <?

2.1K40

Laravel5.1 框架模型多态关联用法实例分析

本文实例讲述了Laravel5.1 框架模型多态关联用法。分享给大家供大家参考,具体如下: 什么是多态关联?...一个例子你就明白了:好比如说评论 它可以属于视频类 也可以属于文章类,当有个需求是 从评论表中取到视频类数据,这就需要用到多态关联了。 简单一句话总结:一张表对应两张表。...1 实现多态关联 1.1 文章表结构 public function up() { Schema::create('articles', function (Blueprint $table...$comment- item_type; } }); 更多关于Laravel相关内容感兴趣读者可查看本站专题:《Laravel框架入门进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程...》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架PHP程序设计有所帮助。

46330

Laravel学习记录--Model

- 多态一对 - 多态一对多 - 多态多对 关联查询 继承:ILLuminate\Database\Eloquent\Model model表名关系 表名去掉...,对于数据库查询优化角度来说,显然不合理,有没有方法能一次就返回所有的关联查询结果呢?...(articles),用户文章是一对多关系,国家用户也是一对多关系,那么怎么实现根据不同国家显示对应文章?...学到了这里,理解多态多对多也不是很难了,还是举例说明,文章标签关系,多对多这个大家知道,因此我们需要建立文章表标签表,以及中间表,中间表存放文章标签表id使他们建立连接,这是常规套路,但如果我们系统大一点...这样或许也行吧,或许有更方便办法—就是马上要学习多态多对多,多态多对多也是需要中间表,常规多对多差不多,只是中间表需要_type(模型类型字段),_id(关联模型id) 话不多说直接上案例 我们要实现功能是

13.4K20

从0开始做一个审批模块

所以这个需求方,可以定义为多态,说通俗一点就是通过类型和 ID 来决定对象。不过这里我并没有定义为多态,因为应用里面不会出现需求方不确定类型场景,还是继续沿用 creator_id。...'review', $apply); $apply->markAsRejected(); return \response()->noContent(); } } ‍对多态关系表单验证不太清楚可以戳这里...:『Laravel多态关系表单验证[3]』 。...References [1] 一对多多态关联: https://learnku.com/docs/laravel/8.x/eloquent-relationships/9407#one-to-many-polymorphic-relations...[2] Laravel: https://laravel.com/ [3] Laravel多态关系表单验证: https://learnku.com/articles/12449/form-validation-of-polymorphic-relationships-in-laravel

1.7K10

Vuebnb:一个用vue.js和Laravel构建全栈应用

在这篇文章中,我会把它如何工作做一个高层次概述,好你了解如何从零开始参与建设一个Vue/Laravel构建全栈应用。...我还用Laravel安全认证API调用,这是用户能够保存他们喜欢房间列表。 特征 该项目的功能主要包括UI组件以及应用程序总体架构设计。...解决方案包括一个协同使用VueVue-Router,Vuex和Axios一起创造一个令人惊讶简单机制,在需要用于检索数据时使用它。 ?...我在本文中没有提到其他主题包括: Vue.js数据绑定核心概念、指令和生命周期挂钩 建立全栈应用最佳实践开发工作流Vue/laravel,包括WebPack。...全栈应用程序生产部署,免费Heroku App和CDN服务相关静态资源 我很高兴地这本书已经出版了!

6K10

推荐18-Laravel scout elasticsearch 案例

,设成 0.0.0.0 任何人都可以访问。...线上服务不要这样设置,要设成具体 IP 基本概念 elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以允许多个 elastic 实例,单个 elastic 实例称为一个节点...由于里面的概念内容比较多,贴出两个讲解非常好博客: 阮一峰讲解 ElastSearch 技术分析 看完了之后,我们可以用一个对比来了解一下其中重要概念 - 关系型数据库 -> Databases...Laravel scout es 先安装 scout 包 composer require laravel/scout 再生成配置文件 php artisan vendor:publish --provider...="Laravel\Scout\ScoutServiceProvider" 在 config/app.php provider 中,添加 Laravel\Scout\ScoutServiceProvider

1.3K10

宇宙最强语言PHP“全栈”框架——Laravel来了!

使用包,可以其他人负责开发和维护一个独立、具有特定功能代码块,从理论上说,开发人员可以有更多时间对这些单个组件进行深入了解研究。...它提供了一个经深思熟虑后得到答案,并确保你所选择特定组件能够很好地协同工作。 此外,框架提供了一些约定,可以减少开发人员在创建新项目时必须理解代码量。...例如,如果你了解一个 Laravel项目中路由是如何工作,那么也就了解了路由在所有 Laravel 项目中工作原理。...Laravel 正试图从开发人员工作中提取出重复性工作,这样开发人员就可以做一些独特事情了。...更因为你,亲爱开发者,使用 Laravel你感到快乐!

2.3K10

Laravel Eloquent 模型关联关系(下)

>orderBy('created_at', 'desc'); }]); 关联插入更新 一对多关联记录插入 新增关联模型时候,可以在父模型上调用相应方法直接插入记录到数据库,这样做好处是不需要指定关联模型父模型外键关联字段值...多对多关联绑定解除 在插入多对多关联记录时候,可以通过上面一对多关联记录插入方式。...对于那些已存在标签记录,我们可以通过更高效方法文章进行关联关系绑定和解除,这个方法就是 sync,调用该方法时只需传入刚创建/更新后文章标签对应 ID 值,至于哪些之前不存在关联需要绑定,哪些存在关联需要解除...: 结语 好了,关于关联关系我们就介绍到这里,我们分了三篇篇幅来介绍 Eloquent 模型管理关系,回顾一下,主要包含以下内容: 七种关联关系定义:一对一、一对多、多对多、远层一对多、一对一多态关联...、一对多多态关联、多对多多态关联; 以上关联关系查询,主要包含两种方式:懒惰式加载和渴求式加载; 基于关联查询构架复杂查询对查询结果进行过滤; 关联模型更新、插入和删除操作。

19.5K30

如何选择PHP框架?

PHP是世界上最受欢迎编程语言之—。最近发布PHP7令这种服务器编程语言比以前变得更好,更稳定了。 PHP被广泛应用于重大项目。例如Facebook就是使用PHP来维护和创建它们内部系统。...它有30个组件可以选择,开发人员可以有足够自由在RAD环境下进行试验和工作。Symfony API还允许使用第三方应用来方便集成,它可以流行前端框架,例如AngularJS一起使用。...php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?...Laravel性能是非常值得商榷。它是最慢,但这有什么关系呢?你可以在网上找到很多加速性能资源,例如guide on GitHub,它可以加快你Laravel应用程序。...项目是开源,其源代码可以在GitHub上找到,任何人都能轻松做出贡献: Symfony Laravel Yii 该框架有很好文档记录,并由一个大社区支持。 它们都支持ORM(对象关系映射)。

7.7K90

10个比较流行PHP框架

Symfony也非常灵活,可以Drupal这样大型项目集成。Symfony和Laravel有许多共同和独特特性,这使得很难说哪一个框架更好。...此外,其健壮安全特性使框架适合于高度安全工作,如电子商务项目、门户、CMS、论坛和许多其他。...Zend框架附带了非常好文档,并且有一个很大社区基础。然而,如果你是一个移动应用程序开发者,准备好面对一个陡峭学习曲线。 7. Phalcon ?...不利一面是,Phalcon开发人员在修补bug方面有点慢,这可能不符合当今对高级别安全性需求。 8. Swoft ? Swoft是一个高性能PHP微服务协同程序框架。...它已经出版多年,已经成为php最佳选择。它可以像Go一样,内置协同程序web服务器和通用协同程序客户机,并且驻留在内存中,独立于传统PHP-FPM。

11.9K10

如何在Ubuntu 14.04上使用Ansible部署高级PHP应用程序

本教程结束时目标是您拥有一个具有上述高级配置完全可用PHP应用程序服务器。 上一个教程一样,我们将使用Laravel框架作为示例PHP应用程序。...(自建服务器难免会遇到这样问题,配置SSL很麻烦,虽然对一部分人来说这也是一种乐趣,但是如果您在生产环境使用,我还是建议您直接使用云关系型数据库,云关系型数据库您在云中轻松部署、管理和扩展关系型数据库...云关系型数据库是一种高度可用托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时数据库管理任务中解放出来,您有更多时间专注于您应用和业务。)...步骤9 - 配置队列守护程序 步骤8名为schedule:runArtisan命令一样,Laravel还带有一个可以使用queue:work --daemonArtisan命令启动队列工作程序...在此步骤中,我们将为Laravel配置队列守护程序worker。 队列工作cron作业类似,因为他们在后台运行任务。

10.7K60

怎样选择适合自己php框架

PHP是世界上最流行编程语言之一,并且最近PHP7发布这门服务器端编程语言比以往更加强大和稳定。 PHP广泛应用于大型项目,例如Facebook使用PHP来建立和维护他们内部系统。...有30个组件可供选择,开发者有完全自由在RAD环境中实验和工作。Symfony APIs也使得它很容易第三方应用整合,它也能与流行前端框架一起使用,比如AngularJs。...怎样比较它们 这3个框架开发Web2.0应用都非常好,但是各自服务不同目的。让我们看看它们特性以及它们目前状态。 模版引擎 模板引擎在编写前端代码时,简化开发者工作并提供更好功能。...Laravel性能是一个颇有争议问题。它是最慢,但这有关系吗?你会找到在线资源去加速它性能,包括GitHub上指南laravel应用变得更快。...管理扩展包 单元测试做得很好 提供了大量扩展包来扩展框架功能 有强大社区支持和丰富学习资源 结论 在SymfonyLaravelYii竞争中,3个框架都是极好选择,都为开发者提供来全栈开发环境

4.7K20

F5 歇一会儿——laravel-mix 自动刷新之道

随着踩坑越来越多,也日渐积累了不少经验,这其中就包括各种自动刷新办法。...因为近几年来大部分时假在 Laravel 打交道,使用 laravel-mix 已成家常便饭,所以想着总结并分享一下 laravel-mix 工作流中自动刷新之道。...laravel-mix 自称 An elegant wrapper around Webpack for the 80% use case ,其功能确实强大,它对于前端开发工作考虑也是非常全面,可以通过...,它通常是我开发时使用主力工具(甚至我为 hexo 安装 Browsersync 插件)。...环境中存在路径分隔符问题 见 Issue ,好在这几个 Issue 里也给出了这些问题解决办法,虽然不甚优雅,但至少行得通。

2.3K20

通过基准测试探究 JIT 对 PHP 应用性能影响

看起来很高大上,不过 JIT 主要针对 CPU 密集型操作优化效果明显,而目前主流 PHP Web 应用都是 IO 密集型操作,那么 PHP 8 引入 JIT 对这些 Web 应用性能有没有提升呢...3、编译安装 PHP 8 测试版 完成上述准备工作后,就可以开始 PHP 8 测试版本编译安装了,首先,我们从 Github 下载 PHP 8 测试版本源码(PHP 官网源码包下载太慢): wget...6、Web 应用基准测试 接下来,我们以 Laravel 演示项目为例,演示 PHP Web 应用中启用 JIT 不启用性能有没有提升。...-w796 可以看到在 IO 密集型操作 Web 应用中,启用 JIT 不启用相比,性能不但没有提升,反而有 10% 左右损耗,至少在 Laravel 应用中是如此。...7、小结 当然,这里测试仅限于学院君 Ubuntu 虚拟机环境(Windows WSL 版,配置是 8C8G),并且我也只是将 JIT 参数调整为官方建议参数,没有做更多对比测试,但是可以肯定

1K20

Laravel 多态关系表单验证

相信大家使用 Laravel 开发应用时候都会有评论模块吧,而且我们通常将该模块设计为多态关系(如果你对这个关系还不明白的话,请赶紧打开 Laravel 文档数据库关系章节复习一遍吧!)。...一般来讲有两种方式,而我们通常用一种是从父模型使用关系写入,比如我们有一个 App\Thread 类,它里面对评论关系是这样: class Thread {    public function...comments() {            $this->morphToMany(Comment::class, 'commentable');    } } 然后我们写入评论时通常是这样..., ]); 其实不管哪一种,我们都少不了表单验证,而且无论使用任何一种我们都得需要传入两个关键参数: 类型 id,那就涉及到一个问题,如何验证呢?...是不是简单很多,而且这样验证规则还能重用在其它同类多态关系地方哦。 这样就结束了么?没有! 我们上面的拓展验证规则写法没有感觉有些粗暴么?是时候规范一下了。

2.1K40
领券