如何在Laravel中建立这种雄辩的关系

时间:2020-03-17 14:44:33

标签: laravel eloquent

我有一个名为users的表,其中有一个列用户名。另一个表称为带有列代码的学生。我已经在User模型中建立了hasMany关系,如下所示。

currentStateName

我还有另一个表称为Institutes,其中的一列类似于名为inst的students表。我需要在显示用户数据的同时显示机构表中的数据。如何建立这种关系?

用户表

用户名|手机|地址|密码

学生桌

用户名|名称|安装|卷| reg

机构表

名称|输入|地址|电话

这是我的家庭管理员

public function students()
{
   return $this->hasMany(Student::class,'code','username');
}

这是我的观点

public function index()
{
     $admins = User::where('username','=',Auth::user()->username)->get();
     return view('home', compact('admins'));
}

1 个答案:

答案 0 :(得分:0)

  1. 向您的“学生”表添加迁移:

     $table->unsignedBigInteger('user_id')->nullable();
        $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('set null');
    
  2. 使用学生方法更新模型用户:

    return $this->hasMany(Student::class);
    
  3. 添加“带有方法”

    $ admins = User :: where('username','=',Auth :: user()-> username)-> with('students')-> get();