问题标签 [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.
php - Laravel - 具有复合主键的 HasOneThrough
我正在开发一个人们可以查看体育比赛的应用程序。这些表具有复合主键。以下是表的相关属性的样子:
所以我的目标是让所有比赛都与特定的主客队一起进行......所以它应该看起来像这样Game::with('homeTeam')->with('guestTeam')->....;
怎么可能得到这种关系?我试过hasOneThrough
了,但我不知道它如何与复合主键一起使用!
谢谢你的帮助!
编辑
$primaryKey
除了属性之外,模型都是空的。
游戏模型
protected $primaryKey = ['id', 'league_id'];
public function homeTeam() { // ... }
团队模型
空的
联赛_球队
protected $primaryKey = ['league_id','team_id'];
laravel - 雄辩的关系 - hasOneThrough
---------- 表 ----------
用户
- 用户身份
顾客
- 客户ID
- 用户身份
时间表
- schedule_id
- mail_id
- 客户ID
邮件
- mail_id
- 主题
- - - - - 楷模 - - - - -
schedules_model
--------- 控制器 ----------
请帮助我如何通过客户获取用户信息?非常感谢您的支持!
ruby-on-rails - Rails has_one、belongs_to、join_table 和嵌套表单
我正在创建一个用户、角色和用户角色。用户可以创建角色列表,并且在新用户表单中,有一个嵌套表单填充创建的角色列表,然后用户可以选择角色并与新用户关联。我能够创建角色列表,但在新用户视图文件中创建嵌套表单时遇到问题。
这是模型,如果关系正确,请告诉我。
User
控制器。我不确定我的控制器是否正确:
以下是新用户表单:
for 的嵌套形式user_role
不显示,也请告知User
,Role
和之间的关系UserRole
是否正确。
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: [],
}
php - Laravel hasOneThrough 关系返回 null
我在 MySQL 数据库中有以下表结构:
我正在使用hasOneThrough
Products 模型上的关系来获取有关Person
链接的详细信息Users
。定义关系的代码如下:
但是null
当我尝试访问该属性product_user
时,它一直在给我null
。我无法更改数据库结构。在这种情况下如何定义正确的关系?
laravel - hasOneThrough 和 hasManyThrough 在 Eloquent 中不起作用
我有以下表格
我想获取用户的工作日(然后获取所有具有指定工作日的用户,但一次一步)。我尝试了几种变体,但它不起作用。我相信问题可能是工作日没有参考userdatas
。
在用户模型中:
我还定义了以下内容:
在Userdata
在Workday
是否必须在中定义反向关系Workday
?有什么技巧可以让它工作吗?
谢谢!
ruby-on-rails - ActionView::Template::Error (nil:NilClass 的未定义方法 `klass')
在使用与订阅相关的过滤器时,我收到以下错误 -
这是用户模型 -
这是订阅模式 -
这是帐户模型 -
有谁知道如何解决它?任何帮助将非常感激。
编辑 - 这是错误的完整痕迹
ruby-on-rails - 如何使用连接表/模型在两个模型之间创建“has_one”关系?
TL;DR:如何使用连接表创建has_one
关联,反之亦然?through
belongs_to
上下文:我有两个模型,ProcessLog
和Encounter
。ProcessLog
,顾名思义(有点),保存外部进程(多次运行)的单次运行(对应于数据库中的一行)的日志。另一方面,Encounter
是一个跟踪某些信息 X 的模型。Encounter
s 可以在内部产生,也可以作为前面提到的外部过程的成功执行的结果。它意味着不是所有 Encounter
的 s 都有关联的ProcessLog
,也不是所有 ProcessLog
的 s 都有关联的Encounter
。但是,如果有一个ProcessLog
for an Encounter
,这是一个1:1 的关系。一个Encounter
不能超过一个ProcessLog
和一个ProcessLog
不能属于多个Encounter
。从数据库设计的角度来看,这是一个optional relationship
(我希望我没有忘记我的课程)。在数据库中,这将使用encounter_id
作为主键和外键process_log_id
的连接表进行建模。
Rails:在 Rails 中,1:1 关系通常在不使用连接表的情况下建模,并且该belongs_to
表通常具有另一个表的外键。所以在我的情况下,这将encounter_id
在process_logs
表格中。
问题has_one
:使用and的传统 Rails 方法belongs_to
,这将导致表中的许多行process_logs
具有列的NULL
值encounter_id
。现在,Rails 的这种方法有利有弊,但是,我不打算在这里讨论。是的,它将使表结构保持简单,但是,在我的情况下,它破坏了语义并且还引入了许多NULL
值,我认为这不是一个好方法。这也是可选关系存在连接表的原因。
到目前为止我做了什么?: 除了以下两个链接的文档之外,我找不到很多关于这个主题的有用文档,尽管它们有自己的问题并且不能解决我的问题。
我创建了一个连接模型EncounterProcessLog
(它同时belongs_to
用于ProcessLog
和Encounter
),然后has_one ..., through:
在其他两个模型上创建了一个连接模型,但 Rails 正在寻找多对多关联,当然还要encounter_id
在process_logs
桌面上寻找。
问题:我怎样才能实现我打算在这里实现的目标?下面的(非工作)代码行中的一些东西:
我希望有人能够指导我正确的方向。感谢您到目前为止的阅读。
php - 有没有办法为 HasOneThrough 生成数据透视记录
我的关系按我的意愿工作,但我不确定将数据插入数据透视表的正确方法。
这行得通,但看起来很复杂:
对于我发现的其他关系类型,您可以执行以下操作:
或者
这两个都不适用于 HasOneThrough 关系。
这是我的模型的样子:
团队合作的模式是:
中间表如下所示:
难道我做错了什么?
我查看了以下帖子,但那是关于访问数据的,我正在寻找创建数据:hasOneThrough with pivot table laravel eloquent
laravel - Laravel hasOneThrough 模型中的关系
假设我有一个如下的数据库模式:
我可以使用模型hasManyThrough
中的以下关系检索部门的所有出勤率Department
:
但是,我试图做相反的事情,即从考勤模型中检索员工的部门。我试图使用这种hasOneThrough
关系,但我无法得到它。我已经查看了文档以及其他相同的教程。任何关于我如何通过Attendance
模型中的关系这样做的帮助将不胜感激。