问题标签 [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.
php - 在 laravel 8 中查询与相关模型的多态关系
所以我想要属于正确关系的相应项目,所以当类型是App\\Models\\Post
它应该得到一个帖子项目,如果类型是App\\Models\\Comment
它应该得到一个评论等等
查询
结果
评论或帖子甚至不会出现在结果中。
编辑:
我最终得到了这个,但如果这可以在 1 个查询中完成,那仍然会很好!所以我可以添加日期过滤器DESC
或ASC
过滤器。
更多编辑!
我看过这篇文章Laravel - Eager Loading Polymorphic Relation's Related Models但是当我将这样的关系添加到我的模型中时
它仍然使用帖子类型加载评论,反之亦然,模型我错过了什么吗?或者我可以在带有额外过滤器的查询中添加一些东西吗?每个单独的项目?因为我无法获取数据,$bookmarkitem->bookmark_item
因为我使用 ajax 来获取数据请求,所以我不能在前端这样做来获取我的帖子或评论
楷模:
数据库的 DB Schemes
eloquent - 将where条件应用于多态关系laravel 8中的相关模型
我在多态关系中面临一个问题,我无法让 whereHas 工作。关系代码可以正常返回相关模型,但是需要对与多态关系连接的模型的关系应用 where 条件?
我的多态关系是由两个模型映射的。例如:事件和会议两种模型都有自己的关系来存储他们的受让人(属于许多人)我需要将 where 条件应用于受让人关系以获取所需的数据,在我的多态关系中,我得到了与受让人的数据,但没有与适用条件。
laravel - 从数据库中的多态关系中选择字段
我有一个Order
与 和 具有多态客户关系Parent
的模型School
。我现在的目标是查询订单并生成包含客户name
和的报告email
。name
和字段都email
存在于Parent
和中School
。
Order
有:
Parent
两者School
都有:
我目前的查询是:
结果是:
我认为可以在选定字段列表中添加customer.name
和customer.email
,但 Eloquent 抱怨customer.name
找不到客户字段,这有意义吗?
如何获取相关模型中的数据?
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 顺序查找数据。
laravel - MorphMany 到 MorphTo 关系
我的 laravel 项目中有经理表和资金表
经理 -> id、姓名、钱包资金 -> id、金额、fundable_type、fundable_id、应收款类型、应收款ID、状态
我在 Manager 模型中有以下关系
我在基金模型中有以下关系
$manager->funds 很好地填充了基金模型。
我想接收收到资金的经理特定经理。
我试过 $manager->funds->receivable 但它不起作用。
laravel - 试图在雄辩的多态中访问 null 类型值的数组偏移量
我无法遍历关系,但是当我使用 $val['image'] 它返回一个集合
python - sqlalchemy.exc.InvalidRequestError:无法将具有标识键的行加载到对象中;多态鉴别器列是指映射类
我有一些具有多态基类定义和两个子类的遗留代码。
实体定义如下。
来自我本地数据库的一些示例数据。
我正在尝试查询“控制器”表,而 SQLAlchemy 正在尝试加载所有类的关系(我的假设)。当它到达多态子类时,查询失败,因为“字段”表包含对“控制器”和“节点”表的外键引用,并且因为后者应该是“节点”类型,所以它仍然有一个 FK “控制器”表,因此身份不是正确的类型。在当前配置中,SQLAlchemy 似乎不喜欢这样。可以在下面看到堆栈跟踪。
如果我删除对具有身份“节点”的实例上的“控制器”表的引用,查询将按预期运行。由于这是遗留代码,我不能只删除额外的 FK 引用,因为我们不知道这样做会破坏什么。有没有一种方法可以告诉 SQLAlchemy 在不查看 FK 参考或其他内容的情况下加载正确的定义?
额外信息:
FastAPI Docker 容器与 MySQL 数据库 Python 3.8 SQLAlchemy 1.4.21
laravel - hasManyThrough 与变形
我有一个可以分配给用户或团队的项目表,这是结构:
我的团队表包含带有数据透视表的成员:
最后是我的用户表:
现在的问题是我想直接或通过团队获取已分配给用户的所有项目,正如预期的那样 $user()->projects 返回直接分配给用户的项目。
我尝试了很多解决方案,但没有一个对我有用。
eloquent-relationship - Laravel 多重多态关系
我有一个数据库表如下
帖子表 | 评论表 | 用户表 | 页表 | 喜欢表 |
---|---|---|---|---|
ID | ID | ID | ID | ID |
用户身份 | 用户身份 | 姓名 | page_name | liker_id |
内容 | 评论 | 电子邮件 | liker_type | |
created_at | created_at | 喜欢的_id | ||
喜欢的类型 |
Likables表中的liker_type 列可能是post或comment, liker_type列可能是page或user。
我想从Post或Comment模型中访问总点赞数以及每个页面或用户的集合。
同样,我想获得用户或页面喜欢的帖子或评论的集合。
有可能有这样的吗?我怎样才能为这个场景建立关系?