问题标签 [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 投票
2 回答
54 浏览

php - 如何构建 Eloquent 查询来检索主表的记录,在 Laravel 5 PHP 的相关表上应用 where 子句?

使用 Laravel 文档中的示例多对多多态 relaltionshiop 数据库结构,如下所示:

我想检索OR的post记录。post.name LIKE %laravel%tags.name LIKE %laravel%

如何使用 Eloquent 模型构建这样的查询?这对我来说是一个很大的挑战,因为我只想获取其名称由单词组成的laravel帖子,或者其相关标签的名称由相同单词组成的任何帖子。

0 投票
0 回答
54 浏览

php - Laravel Morph 关系 - 分离/附加

我有这个关系模型:

在此处输入图像描述

我的主要目标是在系统上建立反应,以便与 N 个身份相关(例如:文章、照片、新闻……)

反应模式:

Reactionables 架构:

hasReactions trait(应用于可反应的东西,如 Post、Images 等):

isReactor 特征(适用于用户):

这里的主要问题是,有时(随机,我不知道它是如何发生的),一些随机用户的反应会删除所有其他反应。

我什至不知道这是否是解决这个问题的最佳解决方案 - 我不想在反应之间应用严格的关系〜帖子应用反比关系,所以这就是我申请这个的原因。

0 投票
2 回答
1484 浏览

laravel-5 - SQLSTATE [42S22]:未找到列:1054 未知列 '' 在 'where 子句'

我不断收到错误

“SQLSTATE [42S22]:找不到列:1054 Unknown column '' in 'where 子句'”

使用 sql 输出:

我试图在多态模型上使用雄辩的firstOrNew/firstOrCreate方法。我已经尝试了各种变体:

这似乎仅在尝试更新我实际更改某些内容的记录时发生。创建记录似乎工作正常,更新我不改变任何东西的地方似乎工作。我完全不知道接下来要做什么...

我看过这些(以及其他十几个并不真正相关的):

Laravel 雄辩的 firstOrNew 方法不更新或插入

laravel auth:api 返回 SQLSTATE[42S22]: Column not found: 1054 Unknown column '' in 'where 子句' (SQL: select * from `users` where `

感谢您的帮助或新问题!

0 投票
1 回答
1933 浏览

php - 如何修复错误“请使用 whereHasMorph() 处理 MorphTo 关系。” 使用 Laravel BackPack 的搜索功能时?

我有一个非常简单的一对多多态关系如下。

下面是模型中的关系的样子:

我使用 Laravel Backpack CRUD 来管理comments. 在CommentCrudController::setup()函数中,我添加如下列:

通过函数中的上述配置CommentCrudController::setup(),我可以正常得到一个评论概览表。但是,当我尝试使用 Backpack 搜索表单搜索内容时,出现以下错误:

我确实理解,因为它是与函数的One-To-Many多态关系,并且在我用来添加as 列的函数中,尝试搜索记录时会尝试在函数内执行以下查询:morphTo()CommentCrudController::setup()'type' => "select"title"Related Entity"Laravel Backpacktrait Search::applySearchLogicForColumn()

正如错误所说,$query->orWhereHas()应该改为$query->whereHasMorph(). 但改变这一点并不能解决问题。而且我还希望能够在title相关模型的列中进行搜索。
我怎样才能解决这个问题?

0 投票
1 回答
43 浏览

php - 是否可以在 Laravel 中对同一模型进行多对多变形关系?(由关系变形的两个在同一个模型中)

我有带表格的 Role 和 DocType 模型。DocTypes 必须由特定角色批准,并由另一个特定角色创建。这是表结构:

这是我的代码:

在 AppServiceProvider 类中:

在角色类

在 DocType 类中

但是当我将角色附加到createRoles()它时,保存到数据库“批准”类型。

0 投票
3 回答
1308 浏览

laravel - Laravel 5.8多态关系`nullableMorphs`不起作用

我有一个附件表,它与其他表具有多态关系。我想在文件选择上上传一个文件并将其插入到attachments表中,但是在创建父记录之前,该记录与任何父表都不相关,因此对于这两个字段attachable_idattachable_type应该可以为空。以下是附件表迁移:

但是当我创建附件记录时,它显示一个错误。

0 投票
1 回答
48 浏览

laravel - Laravel加载主模型不起作用的多态相关模型

假设我有一个posts, 和attachments表,我想要的是获得一个特定的帖子,并加载它的附件。目前,我正在这样做:

它生成的查询是这样的:

上面的查询结果是空的,因为没有转义\,如果我复制,在 MySQL 工作台中过去这个查询并像"App\\Post"它工作一样转义那个斜线。如何解决这个问题?

0 投票
1 回答
375 浏览

laravel - 如何在 Laravel Eloquent 中急切加载时获取多态关系类型?

在查询多态关系存在或不存在时,Laravel Eloquent 提供了真正有助于创建与类型相关的查询的方法whereHasMorphwhereDoesntHaveMorph但是对于急切的负载呢?

情况如下:

考虑 3 个模型App\PhotosApp\VideosApp\Blogs

这三个模型都是可馈送的,这意味着它们与App\Feed模型具有多态关系。

但是虽然App\PhotosApp\Videos模型是可反应的(与App\Reactions模型具有多态关系),但App\Blogs模型没有这种关系。

我们来看看方法:

应用\饲料

应用\反应

应用\照片

应用\视频

应用\博客

在从App\Feed模型查询提要时,我还想获得反应计数。但由于App\Blogs模型没有名为 的方法reactions,因此此查询会导致错误。

如何创建这样的查询:

编辑

我试图简化我的问题,但我认为我需要提供有关该应用程序的更多信息。

该应用程序是第三方开发人员可以为其开发模块的内容管理系统(社交网络系统)。博客、照片、视频、Feed、反应、评论、分享等都是不同的模块,网站所有者可以禁用或删除它们。因此,当开发人员创建模块时,他们必须考虑到反应、评论等模块可以被禁用或删除。

0 投票
2 回答
809 浏览

laravel-5 - 根据多态关系中的模型类型获取所有记录

我有 3 个模型和相关表:Firm、SaleFirm、PartnerFirm。

在公司表中,我想存储有关公司的一般信息,例如名称、银行帐户、ID 和类似的东西。在另外两个表中,我将根据公司的类型(销售公司或合作伙伴公司)存储不同的信息。

由于这种逻辑,我需要这些表之间的多态一对一关系。

在我的公司表中,我有 2 列:firmable_idfirmable_type

Firm Model 和 SaleFirm/PartnerFirm Model 之间的关系是这样的:

我的问题是:我怎样才能得到firmable_type基于模型名称的所有记录?我可以使用这种关系来做到这一点,还是我需要做这样的事情:Firm::where('firmable_type','path\to\PartnerFirm')->get()

0 投票
1 回答
139 浏览

php - 使用自定义表创建多对多多态关系

如何使用自定义多态表创建多对多关系?

model_has_tags

标签

用户

我试试这个但不工作。

标签模型

用户模型

错误 :

如何解决这个问题?