Laravel BelongsToMany将id数组作为属性,而不是单个id



给定:

"users" table:
[{
id: 1,
school_ids: [1, 2, 3] // text type cast as array
}]

然后:

"schools" table:
[{
id: 1,
name: 'school 1",
},
{
id: 2,
name: 'school 2",
},
{
id: 3,
name: 'school 3",
}]

我目前在我的用户模型中有一个关系:

public function schools() {
return $this->belongsToMany(School::class, 'school_ids');
}

这目前不起作用。

  1. 我想知道我是否可以让它工作,如果它读取school_ids,它会将其强制转换为数组,并且调用User::schools()会给我一个School模型的集合
  2. 如果#1可以实现,我想知道我是否可以在Laravel nova上实现它(?(

根据关系,我想你不能,但你可以制作这样的

public function schools() {
return Schools::whereIn('id',$this->school_ids)->get(); // Will return collection of Schools object 
}

因此,为了让我的生活更轻松,我决定创建一个连接学校和用户的数据透视表。

最新更新