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

在Laravel 5.4中如何从一对多多态关系中获取一条记录

在Laravel 5.4中,可以通过以下步骤从一对多多态关系中获取一条记录:

  1. 首先,确保你已经在数据库中设置好了相关的表和关系。一对多多态关系需要三个表:多态关联表、多态类型表和多态目标表。例如,我们有一个多态关联表comments,一个多态类型表commentable_types,和一个多态目标表posts
  2. 在相关的模型中,定义好多态关系。在本例中,我们假设有一个Comment模型和一个Post模型。在Comment模型中,使用morphTo方法定义多态关系:
代码语言:php
复制
public function commentable()
{
    return $this->morphTo();
}
  1. Post模型中,使用morphMany方法定义多态关系的反向关系:
代码语言:php
复制
public function comments()
{
    return $this->morphMany(Comment::class, 'commentable');
}
  1. 现在,你可以通过以下代码从一对多多态关系中获取一条记录:
代码语言:php
复制
$post = Post::find(1);
$comment = $post->comments()->first();

这将返回与该Post模型关联的第一条评论记录。

需要注意的是,以上代码仅适用于Laravel 5.4版本。在其他版本中,可能会有一些差异。另外,如果你使用的是其他数据库,可能需要根据数据库的不同进行一些调整。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议你参考腾讯云的文档和官方网站,查找与Laravel和数据库相关的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel Eloquent 模型关联关系(下)

注:实际开发为了提高查询性能,我们往往是 posts 表冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询的时候直接取该字段即可,从而提高查询的性能。...学院%') ->orderBy('created_at', 'desc'); }]); 关联插入与更新 一多关联记录插入 新增关联模型的时候,可以父模型上调用相应方法直接插入记录到数据库...多关联的绑定与解除 插入多关联记录的时候,可以通过上面一多关联记录插入的方式。...: 结语 好了,关于关联关系我们就介绍到这里,我们分了三篇的篇幅来介绍 Eloquent 模型的管理关系,回顾一下,主要包含以下内容: 七种关联关系的定义:一一、一、远层一、一一的多态关联...、一多态关联、多态关联; 以上关联关系的查询,主要包含两种方式:懒惰式加载和渴求式加载; 基于关联查询构架复杂查询查询结果进行过滤; 关联模型的更新、插入和删除操作。

19.5K30

Laravel学习记录--Model

多态关联 - 多态 - 多态 - 多态 关联查询 继承:ILLuminate\Database\Eloquent\Model model与表名的关系...Model关联 一一 一 渴求式加载 远层一 多态关联 多态关联 一一 1:1最基本的关联关系 ,如一个User模型关联一个Phone模型,为了定义此关联,我们需User模型定义一个...,如果是单条记录获取关联关系,就需要两次查询;如果是多条记录获取关联关系,比如文章列表页获取作者信息,因为每篇文章的作者通过动态属性获取都有一次查询,所以对N条记录来说,需要N+1次查询才能返回需要的结果...一多态关联 学习了一多态关联,一多态关联相对简单,实际上原理跟一多态差不多,只是这里变成了一而已 下面举例说明,以评论来说,文章跟评论的关系是一,可能我们的系统里面 还会针对某个模块设置评论窗口...-多态关联 学到了这里,理解多态也不是很难了,还是举例说明,文章与标签的关系这个大家知道,因此我们需要建立文章表与标签表,以及中间表,中间表存放文章与标签表的id使他们建立连接,这是常规套路

13.4K20

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

作为 Laravel 的重度使用者肯定都对多态关系不陌生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型与标签模型的关系就是多态(Many To Many (Polymorphic...实现目标 我们有两个选择去实现它: 1.创建一个模型基类覆盖这个方法,所有的模型都来集成它即可;2.创建一个 trait,需要的模型引入它。...》[2] 我们的目标是使用表名来做为关系类别名,那么模型如何获取表名呢,直接使用模型的 getTable 即可,那么整个 trait 的实现如下: app/Traits/UseTableNameAsMorphClass.php...UseTableNameAsMorphClass { public function getMorphClass() { return $this->getTable(); } } 然后我们需要用到关系类型的模型引入它即可...References [1] 多态(Many To Many (Polymorphic)): https://laravel.com/docs/6.x/eloquent-relationships

2.7K10

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

作为 Laravel 的重度使用者肯定都对多态关系不默生,以官方文档为例,文章有标签,视频有标签,那么文章和视频这些模型与标签模型的关系就是 多态(Many To Many (Polymorphic...实现目标 我们有两个选择去实现它: 创建一个模型基类覆盖这个方法,所有的模型都来集成它即可; 创建一个 trait,需要的模型引入它。...》 我们的目标是使用表名来做为关系类别名,那么模型如何获取表名呢,直接使用模型的 getTable 即可,那么整个 trait 的实现如下: app/Traits/UseTableNameAsMorphClass.php...trait UseTableNameAsMorphClass { public function getMorphClass() { return $this- getTable(); } } 然后我们需要用到关系类型的模型引入它即可...总结 以上所述是小编给大家介绍的Laravel设置多态关系模型别名的方式,希望大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家ZaLou.Cn网站的支持!

1.9K21

从0开始做一个审批模块

从上面的需求场景我们可以看出,被申请的对象可能是团队也可能是项目,也就是被申请对象不确定,和上面的不确定的需求方是等同的;且一个被申请对象可以被不同的需求方申请多次,也就是典型的 一多态关联[1]...('review', $apply); $apply->markAsRejected(); return \response()->noContent(); } } ‍多态关系的表单验证不太清楚的可以戳这里...:『Laravel 多态关系的表单验证[3]』 。...审批通知列表 需求方发送申请之后,其对应的管理员的审批列表该如何呈现呢?...[2] Laravel: https://laravel.com/ [3] Laravel 多态关系的表单验证: https://learnku.com/articles/12449/form-validation-of-polymorphic-relationships-in-laravel

1.7K10

深入理解 Laravel Eloquent(三)——模型间关系(关联)

本篇文章,我将跟大家一起学习 Eloquent 中最复杂也是最难理解的部分——模型间关系。...pay: id ... ... user_id User 和 Pay 具有一关系,换句话说就是一个 User 可以有多个 Pay,这样的话,只 Pay 表存在一个 `user_id` 字段即可。...关系和之前的关系完全不一样,因为关系可能出现很多冗余数据,用之前自带的表存不下了。...其他关系 Eloquent 还提供 “远层一多关联”、“多态关联” 和 “多态多关联” 这另外三种用法,经过上面的学习,我们已经掌握了 Eloquent 模型间关系的基本概念和使用方法,剩下的几种不常用的方法就留到我们用到的时候再自己探索吧...重要技巧:关系预载入 你也许已经发现了,关系,如果我们需要一次性查询出10个 User 并带上对应的 Account 的话,那么就需要给数据库打 1 + 10 条 SQL,这样性能是很差的。

2.6K30

Laravel Eloquent 模型关联关系详解(上)

Eloquent 模型支持的关联关系包括以下七种: 一一 一 远层一 多态关联(一一) 多态关联(一多态关联() 下面我们将以设计一个简单的博客系统数据库为例一一介绍上述关联关系...以博客系统为例,一个用户可以发布篇文章,反过来,一篇只能归属于一个用户,那么用户和文章之间就是一关系,同样,用户可以发布多条评论,一条评论只能归属于一个用户,用户与评论之间也是一关系。...其实你完全可以把一一关联看作一多关联的简化版本,只不过一一退化为只返回一条记录,所以实现逻辑一样也不难理解了。 如果你的数据表结构不符合这种默认约定,可以自定义传入对应字段参数值。...如果是单条记录获取关联关系,就需要两次查询;如果是多条记录获取关联关系,比如文章列表页获取作者信息,因为每篇文章的作者通过动态属性获取都有一次查询,所以对N条记录来说,需要「N+1」次查询才能返回需要的结果...建立相对的关联关系 与之前的关联关系一样,多关联也支持建立相对的关联关系,而且由于的双方是平等的,不存在谁归属谁的问题,所以建立相对关联的方法都是一样的,我们可以 Tag 模型通过 belongsToMany

9.8K40

基于 Laravel 的用户动态模块开发

发生时间,记录事件产生的时间,当然了我们的数据库通常记录了所有数据产生的时间。...然后我们 blade 或者其它模板引擎的使用,就可以 switch ... case 写法,来应用不同的模板渲染这些样式,比如 blade ,我的用法: @switch($activity->properties...来实现: 安装一直很简单吧: $ composer install spatie/laravel-activitylog -vvv 记录动态 activity()->log('Look, I logged...事件属性里记录关键信息 看到上面记录动态的时候你可能会问,只存储了 ID,这种多态关联,查询的时候会比较复杂,比如,我们要将动态显示为: 安小超 发布了文章 《自定义菜单的使用》 我们如果只是存储了文章的...其实就是,我们动态列表需要展示的关键信息,比如标题这些一起用 withProperties 存起来,这样就一条 SQL 解决了动态列表问题。

1.5K30

orm 系列 之 Eloquent演化历程2

中一大亮点Artisan,Artisan是 Laravel 自带的命令行接口名称,此处不做具体的介绍了,有机会再细说的,当我们命令行执行php artisan command的时候,会去调用migrateCommand...'); // 从文件获取migrate files $files = $this->getMigrationFiles($path); // 获取已经执行的migration...migration哪些已经做了,哪些还没有做,这些记录方式我们通过DatabaseMigrationRepository来实现,最终是通过将执行记录以log的形式插入到数据库。...本文最后讲下Eloquent中新增的对象之间的关系多态关系,以下内容摘自[ Laravel 5.3 文档 ] Eloquent ORM —— 关联关系 表结构 多态关联允许一个模型单个关联下属于多个不同模型...文件,其最初是f851607加入的,我们来看下Manager的内容。

2.4K30

为什么 Laravel 这么优秀?

我准备从一个后端最常用的 CURD 例子说起,一步一步阐述这过程 Laravel 都是怎么完成的;以及~大家~(我)为什么喜欢用 Laravel。...接下来我们将尝试构建一个简易的课程系统,在这个系统中有教师(Teacher),学生(Student)和课程(Course),它们之间覆盖了简单的一一、一多等的关系,这在日常开发也很常见。...这篇文章不会包含所有的代码,但你仍然可以通过这个仓库 godruoyi/laravel-best-practice 的提交记录看到我是如何一一步构建起来的。...因为我们已经完成了数据表字段的定义、表与表的关系、以及最重要的一步:如何将数据及数据之间的关系写入数据库,下面简单的来介绍下在 Laravel如何完成的。...Create Course # 接下来我们来看在 Laravel 如何优雅的保存数据,这部分的记录你可以参考下面这几个 commit: feat: create course chore: switch

15310

还得再来聊聊Laravel模型的一些事

前言 之前,文章:https://www.misiyu.cn/article/58.html 已经发过关于Laravel关系了。 但回过头来,过了个把月再去看,我自己都忘了怎么写了。...确实看laravel的中文文档,看得糊里糊涂的。还是得在实践理解啊。 情景假设 我有一张来源表(referers)来记录href和网页标题title。...还有一张信息表(netDisks)来记录一些东西。 目前需求是信息表里面的多个信息可能同属于来源表一条记录。 同样,来源表的多条信息可能属于信心表一条记录。...简言之就是,这是关系。 细节 新建迁移文件就不说了。 我想说的重点是: 1、来源表和信息表可以没有任何外键约束,意思就是说各建各的,不用考虑外键什么的。...); $id = $ref->id; 2、假设我们信息表(netDisks)插入了一条记录,得到一个model: $model = NetDisk::create(['xx'=>$xx]); 那么我们可以使用以下语句建立关系

1.6K00

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

Php Laravel框架 多表关系处理 之 Eloquent一关系处理 本博文主要介绍 Laravel 框架 Eloquent 对一关系的处理以及 Laravel Administrator...Laravel 提供了四种类型的关系: –一一 –一多态关系 一个一关系的样例是一篇博客文章有很多评论或者一个课程有的多次分数信息等。...* 而且是一关系 */ public function StuInfo(){ return $this -> belongsTo...表与表之间的一关系已确立, 以下将介绍Laravel Administrato 后台中的实现 下拉列表查询、绑定等应用 <?...演示样例多次使用到 “学生姓名”、“课程名”,尽管他们存储不同的表,但因为我们之前 Model已建立了它们之间的 一关系,因此我们能够自由搭配组合 效果图例如以下: 10个Laravel4

2.1K40

Laravel 模型关联基础教程详解

Laravel 定义模型关联是每个 Laravel 开发者可能已经做过不止一次的事情。但是试图实现关联时可能会遇到各种问题。因为 Laravel 有各种各样的关联,你应该选择哪一个?...Laravel 有 3 种不同的关联类型。 一一 一 我们将逐个探讨不同的关联类型并解释一下应该什么时候使用它们。 一一 一一关联是目前存在的最基本的关联。...你可以 Laravel 定义的下一个关联是一多关联。...你可以通过创建迁移文件 Laravel 创建此中间表。 远程关联 远程一一 has one through 关联通过单个中间关联模型实现。...添加约束 可以查询时向关系添加约束。看看下面的示例: <?

5.5K31

3分钟短文:Laravel模型一一一关系真的乱吗?

引言 laravel模型不但提供了可供数据库操作的增删改查,还附加了很多功能,最关键的要数模型的关联关系。本文说一说简单的一一,和一关系。用代码说话,让大家更直观地理解。...代码时间 例如一个通讯录条目,一条通讯录,有一个手机号码,这是个一一的关系。...有同学会疑问, 这中间是靠什么办法关联获取的呢?都是数据库的条目,一定是走SQL查询了吧? 没错,laravel也的确是这样做的。...比如写入一条contact,同时更新phone_number。我们只需关联关系基础上,链式调用save方法,传入一个关联模型实例。如果要写入多条的,就传入一个 关联模型实例的数组。...写在最后 本文通过常用的用户,通讯录,订单,手机号等模型数据,演示了laravel模型的一一一 关联的使用方法。 Happy coding :-)

2K30

具有嵌套关系的可重用API资源——Laravel5.5

本文内容主要围绕在 Laravel 5.5 中使用 API 开发的重要步骤,着重介绍如何利用 Laravel 的 API 资源(Resource)和控制器(Controller)进行因素身份验证(MFA...也就是 app 目录下的 User.php 文件,你会定义用户和posts之间的关联关系,比如一关系(一个用户有多个posts)或其他关系。· 避免批量赋值app/Post.phpattributeName 的方式访问模型的属性,而不必每次都通过模型实例去获取属性。...这样做有利于避免 N+1 查询问题(获取关联数据时出现的效率问题),同时可以使用单个资源类处理不同的情况。如果关联数据不可用,资源类会忽略它;反之,如果可用,资源类会将其包含在返回的数据

11310

Laravel 多态关系的表单验证

相信大家使用 Laravel 开发应用的时候都会有评论模块吧,而且我们通常将该模块设计为多态关系(如果你这个关系还不明白的话,请赶紧打开 Laravel 文档数据库关系章节复习一遍吧!)。..., ]); 其实不管哪一种,我们都少不了表单验证,而且无论使用任何一种我们都得需要传入两个关键参数: 类型与 id,那就涉及到一个问题,如何验证呢?...get('body')]);        return new CommentResource($model->comments()->save($comment)); } 这样写感觉很复杂且不直观吧...是不是简单很多,而且这样验证规则还能重用在其它同类多态关系的地方哦。 这样就结束了么?没有! 我们上面的拓展验证规则的写法没有感觉有些粗暴么?是时候规范一下了。...boot 方法我们统一注册了 $validators里的验证规则,这样一来,添加删除一个规则都会科学清晰很多了。

2.1K40

nextline函数_Java nextLine()方法没有执行直接跳过解决办法

解决办法:可以选择添加一个nextLine()去获取nextInt()后面的换行符(\n) 改了之后程序正常输入: [03]java的方法以及控制语句 00 Java的语句块...一.如何定义java的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块....访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.priv … java如何生成可执行的jar文件 java如何生成可执行的jar文件 最简单的方法就是: jar -...框架开发,php框架一般都会讲究优雅链接,比如Laravel,CodeIgniter,ThinkPHP等都是支持这种链接模式的,服务器配置上也叫作u … cronolog日志切割 1....,即加载类的东西.我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘.网络或其他来源加载到内存,并字节码进行解 … jQuery Validate W3C内容 导入 js

1.1K20

PHP面试题集锦

阅读量: 9 php如何实现继承? trait的出现就是一种解决需要继承场景的方式。...伪静态如何实现? 1、静态化指的是页面静态化,也即生成实实在在的静态文件,也即不需要查询数据库就可以直接从文件获取数据,指的是真静态。...1. get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL,值和表单内各个字段一一应,URL可以看到。...3、多态性:子类继承了来自父级类的属性和方法,并其中部分方法进行重写。于是多个子类虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果,这种技术就是多态性。...单点登录SSO(Single Sign On)说得简单点就是一个系统共存的环境下,用户一处登录后,就不用在其他系统登录,也就是用户的一次登录能得到其他所有系统的信任。 什么是CSRF攻击?

6.9K20
领券