为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用函数 belongsToMany 从表中获取数据

无法使用函数 belongsToMany 从表中获取数据

PHP
一只名叫tom的猫 2022-10-28 16:55:30
我正在尝试将学生数据与组数据一起存储在数组中。例如:groupsid - 1name - P1student_id - 1id - 2name - P1student_id - 2id - 3name - P2student_id - 3在这里我想要这样的门数据[  {name: 'P1', students: [{id: 1, name: 'John'}, {id: 2, name: 'Liza'}]},  {name: 'P2', students: [{id: 3, name: 'Bob'}]},]表:usersid - bigint unsignedname - string...other columns团体id - bigint unsignedname - stringstudent_id...other columnsGroup.php 模型<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Groups extends Model{    public $table = "groups";    public $timestamps = false;    public function students(){        return $this->belongsToMany('App\User', 'groups', 'student_id', 'id');    }}用户控制器.phppublic function groupsAdmin(){   return view("groups", ["groups" => Groups::with(['students'])->get()]);}使用此代码,我得到了空的学生数组。
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

它的,belongsToMany 从用户到组,所以它应该是这样的。


您需要另一个表(数据透视表),将其命名为 group_user。


group_user table:-

user_id

group_id

并从 grups 表中完全删除 student_id。


现在转到用户模型并输入此方法:


public function groups()

{

    return $this->belongsToMany(Group::class);

}

并转到组模型并输入此代码


 public function users()

 {

    return $this->belongsToMany(User::class);

 }

使用上面的代码,您可以访问来自用户的组和来自组的用户,如下所示:


$user = User::first();

$groups = $user->groups;

希望这会有所帮助,请参阅此处的文档: Eloquent Many to Many relationship


查看完整回答
反对 回复 2022-10-28
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信