问题标签 [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 - 如何构建 Eloquent 查询来检索主表的记录,在 Laravel 5 PHP 的相关表上应用 where 子句?
使用 Laravel 文档中的示例多对多多态 relaltionshiop 数据库结构,如下所示:
我想检索OR的post
记录。post.name LIKE %laravel%
tags.name LIKE %laravel%
如何使用 Eloquent 模型构建这样的查询?这对我来说是一个很大的挑战,因为我只想获取其名称由单词组成的laravel
帖子,或者其相关标签的名称由相同单词组成的任何帖子。
laravel-5 - SQLSTATE [42S22]:未找到列:1054 未知列 '' 在 'where 子句'
我不断收到错误
“SQLSTATE [42S22]:找不到列:1054 Unknown column '' in 'where 子句'”
使用 sql 输出:
我试图在多态模型上使用雄辩的firstOrNew/firstOrCreate方法。我已经尝试了各种变体:
这似乎仅在尝试更新我实际更改某些内容的记录时发生。创建记录似乎工作正常,更新我不改变任何东西的地方似乎工作。我完全不知道接下来要做什么...
我看过这些(以及其他十几个并不真正相关的):
Laravel 雄辩的 firstOrNew 方法不更新或插入
感谢您的帮助或新问题!
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 Backpack
trait Search::applySearchLogicForColumn()
正如错误所说,$query->orWhereHas()
应该改为$query->whereHasMorph()
. 但改变这一点并不能解决问题。而且我还希望能够在title
相关模型的列中进行搜索。
我怎样才能解决这个问题?
php - 是否可以在 Laravel 中对同一模型进行多对多变形关系?(由关系变形的两个在同一个模型中)
我有带表格的 Role 和 DocType 模型。DocTypes 必须由特定角色批准,并由另一个特定角色创建。这是表结构:
这是我的代码:
在 AppServiceProvider 类中:
在角色类
在 DocType 类中
但是当我将角色附加到createRoles()
它时,保存到数据库“批准”类型。
laravel - Laravel 5.8多态关系`nullableMorphs`不起作用
我有一个附件表,它与其他表具有多态关系。我想在文件选择上上传一个文件并将其插入到attachments
表中,但是在创建父记录之前,该记录与任何父表都不相关,因此对于这两个字段attachable_id
,attachable_type
应该可以为空。以下是附件表迁移:
但是当我创建附件记录时,它显示一个错误。
laravel - Laravel加载主模型不起作用的多态相关模型
假设我有一个posts
, 和attachments
表,我想要的是获得一个特定的帖子,并加载它的附件。目前,我正在这样做:
它生成的查询是这样的:
上面的查询结果是空的,因为没有转义\
,如果我复制,在 MySQL 工作台中过去这个查询并像"App\\Post"
它工作一样转义那个斜线。如何解决这个问题?
laravel - 如何在 Laravel Eloquent 中急切加载时获取多态关系类型?
在查询多态关系存在或不存在时,Laravel Eloquent 提供了真正有助于创建与类型相关的查询的方法whereHasMorph
。whereDoesntHaveMorph
但是对于急切的负载呢?
情况如下:
考虑 3 个模型App\Photos、App\Videos和App\Blogs。
这三个模型都是可馈送的,这意味着它们与App\Feed模型具有多态关系。
但是虽然App\Photos和App\Videos模型是可反应的(与App\Reactions模型具有多态关系),但App\Blogs模型没有这种关系。
我们来看看方法:
应用\饲料
应用\反应
应用\照片
应用\视频
应用\博客
在从App\Feed模型查询提要时,我还想获得反应计数。但由于App\Blogs模型没有名为 的方法reactions
,因此此查询会导致错误。
如何创建这样的查询:
编辑
我试图简化我的问题,但我认为我需要提供有关该应用程序的更多信息。
该应用程序是第三方开发人员可以为其开发模块的内容管理系统(社交网络系统)。博客、照片、视频、Feed、反应、评论、分享等都是不同的模块,网站所有者可以禁用或删除它们。因此,当开发人员创建模块时,他们必须考虑到反应、评论等模块可以被禁用或删除。
laravel-5 - 根据多态关系中的模型类型获取所有记录
我有 3 个模型和相关表:Firm、SaleFirm、PartnerFirm。
在公司表中,我想存储有关公司的一般信息,例如名称、银行帐户、ID 和类似的东西。在另外两个表中,我将根据公司的类型(销售公司或合作伙伴公司)存储不同的信息。
由于这种逻辑,我需要这些表之间的多态一对一关系。
在我的公司表中,我有 2 列:firmable_id
和firmable_type
。
Firm Model 和 SaleFirm/PartnerFirm Model 之间的关系是这样的:
我的问题是:我怎样才能得到firmable_type
基于模型名称的所有记录?我可以使用这种关系来做到这一点,还是我需要做这样的事情:Firm::where('firmable_type','path\to\PartnerFirm')->get()
?
php - 使用自定义表创建多对多多态关系
如何使用自定义多态表创建多对多关系?
model_has_tags
标签
用户
我试试这个但不工作。
标签模型
用户模型
错误 :
如何解决这个问题?