问题标签 [polymorphic-relationship]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
320 浏览

php - 在 laravel 8 中查询与相关模型的多态关系

所以我想要属于正确关系的相应项目,所以当类型是App\\Models\\Post它应该得到一个帖子项目,如果类型是App\\Models\\Comment它应该得到一个评论等等

查询

结果

评论或帖子甚至不会出现在结果中。

编辑:

我最终得到了这个,但如果这可以在 1 个查询中完成,那仍然会很好!所以我可以添加日期过滤器DESCASC过滤器。

更多编辑!

我看过这篇文章Laravel - Eager Loading Polymorphic Relation's Related Models但是当我将这样的关系添加到我的模型中时

在此处输入图像描述

它仍然使用帖子类型加载评论,反之亦然,模型我错过了什么吗?或者我可以在带有额外过滤器的查询中添加一些东西吗?每个单独的项目?因为我无法获取数据,$bookmarkitem->bookmark_item因为我使用 ajax 来获取数据请求,所以我不能在前端这样做来获取我的帖子或评论

楷模:

数据库的 DB Schemes

0 投票
1 回答
202 浏览

eloquent - 将where条件应用于多态关系laravel 8中的相关模型

我在多态关系中面临一个问题,我无法让 whereHas 工作。关系代码可以正常返回相关模型,但是需要对与多态关系连接的模型的关系应用 where 条件?

我的多态关系是由两个模型映射的。例如:事件和会议两种模型都有自己的关系来存储他们的受让人(属于许多人)我需要将 where 条件应用于受让人关系以获取所需的数据,在我的多态关系中,我得到了与受让人的数据,但没有与适用条件。

0 投票
1 回答
23 浏览

laravel - 从数据库中的多态关系中选择字段

我有一个Order与 和 具有多态客户关系Parent的模型School。我现在的目标是查询订单并生成包含客户name和的报告emailname和字段都email存在于Parent和中School

Order有:

Parent两者School都有:

我目前的查询是:

结果是:

我认为可以在选定字段列表中添加customer.namecustomer.email,但 Eloquent 抱怨customer.name找不到客户字段,这有意义吗?

如何获取相关模型中的数据?

0 投票
0 回答
30 浏览

laravel - 在 Laravel 中自定义表名多态多对多关系?

尝试实现多态多对多关系,类似于文档中的关系。

就我而言, forlabel而不是tag. 并使用不同的表名

这会导致错误。

在上面的示例中,我已将表名添加morphToMany(). 用作表名并添加到标签模型
时出现相同的错误:labelingsprotected $table = 'labelings';

我怎样才能让它工作?我确实想使用label_types它,因为它更适合我的应用程序的其余部分。
我查看了 Stackoverflow 上的其他多态问题,但找不到答案。

0 投票
0 回答
18 浏览

mysql - 从两个多态表 Laravel 中查询数据

表:访问

可访问的_id 可访问类型 IP地址 用户代理 访问
1 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 1
4 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 2
3 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 15
4 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 149

我会在我的 visit.php 模型中获取所有记录:

表:喜欢

likeable_id likeable_type IP地址 用户代理 喜欢
4 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 1
4 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 1
1 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 1
4 应用\模型\直播 127.0.0.1 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb... 1

我会在我的 like.php 模型中获取所有记录:

我想要的是?

我怎样才能获得访问量最高和点赞数最高的记录(此处,同一记录的每一行都是针对特定模型的特定用户生成的)?

预期输出?

因此,例如,如果我获得 id 为 4 的记录的最高访问量,它有 151 次总访问量(149 + 2),对于相同的记录 id,总共有 3 个喜欢(1+1+1),所以这将是最好的记录. 所以按 DESC 顺序查找数据。

0 投票
2 回答
39 浏览

laravel - MorphMany 到 MorphTo 关系

我的 laravel 项目中有经理表和资金表

经理 -> id、姓名、钱包资金 -> id、金额、fundable_type、fundable_id、应收款类型、应收款ID、状态

我在 Manager 模型中有以下关系

我在基金模型中有以下关系

$manager->funds 很好地填充了基金模型。

我想接收收到资金的经理特定经理。

我试过 $manager->funds->receivable 但它不起作用。

0 投票
0 回答
26 浏览

laravel - 试图在雄辩的多态中访问 null 类型值的数组偏移量

我无法遍历关系,但是当我使用 $val['image'] 它返回一个集合

0 投票
0 回答
23 浏览

python - sqlalchemy.exc.InvalidRequestError:无法将具有标识键的行加载到对象中;多态鉴别器列是指映射类

我有一些具有多态基类定义和两个子类的遗留代码。

实体定义如下。

来自我本地数据库的一些示例数据。

在此处输入图像描述

我正在尝试查询“控制器”表,而 SQLAlchemy 正在尝试加载所有类的关系(我的假设)。当它到达多态子类时,查询失败,因为“字段”表包含对“控制器”和“节点”表的外键引用,并且因为后者应该是“节点”类型,所以它仍然有一个 FK “控制器”表,因此身份不是正确的类型。在当前配置中,SQLAlchemy 似乎不喜欢这样。可以在下面看到堆栈跟踪。

如果我删除对具有身份“节点”的实例上的“控制器”表的引用,查询将按预期运行。由于这是遗留代码,我不能只删除额外的 FK 引用,因为我们不知道这样做会破坏什么。有没有一种方法可以告诉 SQLAlchemy 在不查看 FK 参考或其他内容的情况下加载正确的定义?

额外信息:

FastAPI Docker 容器与 MySQL 数据库 Python 3.8 SQLAlchemy 1.4.21

0 投票
2 回答
39 浏览

laravel - hasManyThrough 与变形

我有一个可以分配给用户或团队的项目表,这是结构:

我的团队表包含带有数据透视表的成员:

最后是我的用户表:

现在的问题是我想直接或通过团队获取已分配给用户的所有项目,正如预期的那样 $user()->projects 返回直接分配给用户的项目。

我尝试了很多解决方案,但没有一个对我有用。

0 投票
0 回答
14 浏览

eloquent-relationship - Laravel 多重多态关系

我有一个数据库表如下

帖子表 评论表 用户表 页表 喜欢表
ID ID ID ID ID
用户身份 用户身份 姓名 page_name liker_id
内容 评论 电子邮件 liker_type
created_at created_at 喜欢的_id
喜欢的类型

Likables中的liker_type 列可能是postcommentliker_type列可能是pageuser

我想从PostComment模型中访问总点赞数以及每个页面或用户的集合。

同样,我想获得用户页面喜欢的帖子评论的集合。

有可能有这样的吗?我怎样才能为这个场景建立关系?