问题标签 [has-one-through]

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 回答
53 浏览

php - Laravel - 具有复合主键的 HasOneThrough

我正在开发一个人们可以查看体育比赛的应用程序。这些表具有复合主键。以下是表的相关属性的样子:

所以我的目标是让所有比赛都与特定的主客队一起进行......所以它应该看起来像这样Game::with('homeTeam')->with('guestTeam')->....;

怎么可能得到这种关系?我试过hasOneThrough了,但我不知道它如何与复合主键一起使用!

谢谢你的帮助!

编辑

$primaryKey除了属性之外,模型都是空的。

游戏模型

protected $primaryKey = ['id', 'league_id']; public function homeTeam() { // ... }

团队模型

空的

联赛_球队

protected $primaryKey = ['league_id','team_id'];

0 投票
1 回答
20 浏览

laravel - 雄辩的关系 - hasOneThrough

---------- 表 ----------

用户

  • 用户身份

顾客

  • 客户ID
  • 用户身份

时间表

  • schedule_id
  • mail_id
  • 客户ID

邮件

  • mail_id
  • 主题

- - - - - 楷模 - - - - -

schedules_model

--------- 控制器 ----------

请帮助我如何通过客户获取用户信息?非常感谢您的支持!

0 投票
1 回答
35 浏览

ruby-on-rails - Rails has_one、belongs_to、join_table 和嵌套表单

我正在创建一个用户、角色和用户角色。用户可以创建角色列表,并且在新用户表单中,有一个嵌套表单填充创建的角色列表,然后用户可以选择角色并与新用户关联。我能够创建角色列表,但在新用户视图文件中创建嵌套表单时遇到问题。

这是模型,如果关系正确,请告诉我。

User控制器。我不确定我的控制器是否正确:

以下是新用户表单:

for 的嵌套形式user_role不显示,也请告知User,Role和之间的关系UserRole是否正确。

0 投票
2 回答
128 浏览

laravel - 雄辩的关系 - hasOneThrough 关系

问题
我想schedule从它的表中获取匹配availability,使用表shift_id中的availabilities
可用性已经是users和之间的数据透视表shifts

我认为 hasOneThrough 关系是去这里的方式,但我似乎无法让它工作。
我究竟做错了什么?

可用性
- id
- user_id
- shift_id
- ...

班次
- id
- schedule_id
- ...

时间表
- id
- ...

可用性模型

问题 不知何故,当我使用 PHP Artisan Tinker 时,我得到了 ID 为 Availability.id 的时间表,而不是 ID 为 shift.id 的时间表。由于这个时间表不存在,我得到一个

$availability = App\Availability::find(1331);
$可用性→计划()→获取();
Illuminate\Database\Eloquent\Collection {#3111
all: [],
}

0 投票
1 回答
916 浏览

php - Laravel hasOneThrough 关系返回 null

我在 MySQL 数据库中有以下表结构:

我正在使用hasOneThroughProducts 模型上的关系来获取有关Person链接的详细信息Users。定义关系的代码如下:

但是null当我尝试访问该属性product_user时,它一直在给我null。我无法更改数据库结构。在这种情况下如何定义正确的关系?

0 投票
1 回答
289 浏览

laravel - hasOneThrough 和 hasManyThrough 在 Eloquent 中不起作用

我有以下表格

我想获取用户的工作日(然后获取所有具有指定工作日的用户,但一次一步)。我尝试了几种变体,但它不起作用。我相信问题可能是工作日没有参考userdatas

在用户模型中:

我还定义了以下内容:

Userdata

Workday

是否必须在中定义反向关系Workday?有什么技巧可以让它工作吗?

谢谢!

0 投票
1 回答
148 浏览

ruby-on-rails - ActionView::Template::Error (nil:NilClass 的未定义方法 `klass')

在使用与订阅相关的过滤器时,我收到以下错误 -

这是用户模型 -

这是订阅模式 -

这是帐户模型 -

有谁知道如何解决它?任何帮助将非常感激。

编辑 - 这是错误的完整痕迹

0 投票
1 回答
67 浏览

ruby-on-rails - 如何使用连接表/模型在两个模型之间创建“has_one”关系?

TL;DR:如何使用连接表创建has_one 关联反之亦然?through belongs_to

上下文:我有两个模型,ProcessLogEncounterProcessLog,顾名思义(有点),保存外部进程(多次运行)的单次运行(对应于数据库中的一行)的日志。另一方面,Encounter是一个跟踪某些信息 X 的模型。Encounters 可以在内部产生,也可以作为前面提到的外部过程的成功执行的结果。它意味着不是所有 Encounter的 s 都有关联的ProcessLog也不是所有 ProcessLog的 s 都有关联的Encounter。但是,如果有一个ProcessLogfor an Encounter,这是一个1:1 的关系。一个Encounter 不能超过一个ProcessLog和一个ProcessLog不能属于多个Encounter。从数据库设计的角度来看,这是一个optional relationship(我希望我没有忘记我的课程)。在数据库中,这将使用encounter_id作为主键和外键process_log_id的连接表进行建模

Rails:在 Rails 中,1:1 关系通常在使用连接表的情况下建模,并且该belongs_to表通常具有另一个表的外键。所以在我的情况下,这将encounter_idprocess_logs表格中。

问题has_one:使用and的传统 Rails 方法belongs_to,这将导致表中的许多行process_logs具有列的NULLencounter_id。现在,Rails 的这种方法有利有弊,但是,我不打算在这里讨论。是的,它将使表结构保持简单,但是,在我的情况下,它破坏了语义并且还引入了许多NULL值,我认为这不是一个好方法。这也是可选关系存在连接表的原因。

到目前为止我做了什么?: 除了以下两个链接的文档之外,我找不到很多关于这个主题的有用文档,尽管它们有自己的问题并且不能解决我的问题。

  1. 所以问题这里的方法是使用 has_many 作为连接模型,而我只有一个

  2. 讨论RoR

我创建了一个连接模型EncounterProcessLog(它同时belongs_to用于ProcessLogEncounter),然后has_one ..., through:在其他两个模型上创建了一个连接模型,但 Rails 正在寻找多对多关联,当然还要encounter_idprocess_logs桌面上寻找。

问题:我怎样才能实现我打算在这里实现的目标?下面的(非工作)代码行中的一些东西:

我希望有人能够指导我正确的方向。感谢您到目前为止的阅读。

0 投票
0 回答
24 浏览

php - 有没有办法为 HasOneThrough 生成数据透视记录

我的关系按我的意愿工作,但我不确定将数据插入数据透视表的正确方法。

这行得通,但看起来很复杂:

对于我发现的其他关系类型,您可以执行以下操作:

或者

这两个都不适用于 HasOneThrough 关系。

这是我的模型的样子:

团队合作的模式是:

中间表如下所示:

难道我做错了什么?

我查看了以下帖子,但那是关于访问数据的,我正在寻找创建数据:hasOneThrough with pivot table laravel eloquent

0 投票
1 回答
52 浏览

laravel - Laravel hasOneThrough 模型中的关系

假设我有一个如下的数据库模式:

我可以使用模型hasManyThrough中的以下关系检索部门的所有出勤率Department

但是,我试图做相反的事情,即从考勤模型中检索员工的部门。我试图使用这种hasOneThrough关系,但我无法得到它。我已经查看了文档以及其他相同的教程。任何关于我如何通过Attendance模型中的关系这样做的帮助将不胜感激。