为什么 laravel returns 空数组 a 有很多关系?
Why laravel returns an empty array for a has many relationship?
我正在使用 jenssegers/laravel-mongodb,我的架构如下所示
取票:
{
"_id": ObjectId("5f32d9bb486e94459b6531c3"),
"subject": "\"URGENT\" Non-Compliance In (Eastern Region)",
"content": "abc",
"user_team": "5f044199e40dfe4847056785",
"team_ids": [
"5f3012bbb7c2bc422e4da5a2"
],
"organization_id": "5f74359c7dcc8f6fbb2b47e2"
}
团队合集:
{
"_id":ObjectId("5f3012bbb7c2bc422e4da5a2"),
"name": "Medical Maintenance",
"createTickets": true
}
工单模型中的关系:
public function teams()
{
return $this->HasMany('App\Team', 'team_ids');
}
团队模型中的关系:
public function ticket()
{
return $this->belongsTo('App\Ticket');
}
我在获取团队关系数据时遇到问题。它 return 一个 emtpry 数组。
Laravel版本为6.2
jenssegers/mongodb 版本是 3.6
在 hasMany 的上下文中,您处理外键的方法是错误的。相反,票证上应该有一个名为 team_id 的列,然后您可以执行以下操作。
public function teams()
{
return $this->HasMany('App\Team', 'team_id');
}
如果你的票是这样的话,这会起作用。
{
"_id": ObjectId("5f32d9bb486e94459b6531c3"),
"subject": "\"URGENT\" Non-Compliance In (Eastern Region)",
"content": "abc",
"user_team": "5f044199e40dfe4847056785",
"team_id":"5f3012bbb7c2bc422e4da5a2"
"organization_id": "5f74359c7dcc8f6fbb2b47e2"
}
相反,看起来你实际上是在做多对多,因为一个团队可以有很多票和反向。这可以这样定义,这可能会将数据添加到两个模型中,但我不是 Laravel
中 Mongodb
的专家。
public function teams()
{
return $this->belongsToMany(
Team::class, null, 'ticket_ids', 'team_ids'
);
}
您可以在 documentation.
中找到所有这些
您可以指定外键和本地键。
示例:
public function teams()
{
$this->hasMany('App\Team', 'team_ids', '_id')
}
我正在使用 jenssegers/laravel-mongodb,我的架构如下所示
取票:
{
"_id": ObjectId("5f32d9bb486e94459b6531c3"),
"subject": "\"URGENT\" Non-Compliance In (Eastern Region)",
"content": "abc",
"user_team": "5f044199e40dfe4847056785",
"team_ids": [
"5f3012bbb7c2bc422e4da5a2"
],
"organization_id": "5f74359c7dcc8f6fbb2b47e2"
}
团队合集:
{
"_id":ObjectId("5f3012bbb7c2bc422e4da5a2"),
"name": "Medical Maintenance",
"createTickets": true
}
工单模型中的关系:
public function teams()
{
return $this->HasMany('App\Team', 'team_ids');
}
团队模型中的关系:
public function ticket()
{
return $this->belongsTo('App\Ticket');
}
我在获取团队关系数据时遇到问题。它 return 一个 emtpry 数组。
Laravel版本为6.2 jenssegers/mongodb 版本是 3.6
在 hasMany 的上下文中,您处理外键的方法是错误的。相反,票证上应该有一个名为 team_id 的列,然后您可以执行以下操作。
public function teams()
{
return $this->HasMany('App\Team', 'team_id');
}
如果你的票是这样的话,这会起作用。
{
"_id": ObjectId("5f32d9bb486e94459b6531c3"),
"subject": "\"URGENT\" Non-Compliance In (Eastern Region)",
"content": "abc",
"user_team": "5f044199e40dfe4847056785",
"team_id":"5f3012bbb7c2bc422e4da5a2"
"organization_id": "5f74359c7dcc8f6fbb2b47e2"
}
相反,看起来你实际上是在做多对多,因为一个团队可以有很多票和反向。这可以这样定义,这可能会将数据添加到两个模型中,但我不是 Laravel
中 Mongodb
的专家。
public function teams()
{
return $this->belongsToMany(
Team::class, null, 'ticket_ids', 'team_ids'
);
}
您可以在 documentation.
中找到所有这些您可以指定外键和本地键。
示例:
public function teams()
{
$this->hasMany('App\Team', 'team_ids', '_id')
}