数据库继承 Laravel 5.4.



我期待着建立一个与教师、学生和家长打交道的网站。在我创建的数据库中,我创建了一个user表和 3 个子表:teachersstudentsparents。 请参阅下面的表格结构

User table
+--------+----------+----------+-------+
| id (PK)| username | password | email |
+--------+----------+----------+-------+
| 1      | user1    | 123      | ...   |
+--------+----------+----------+-------+
| 2      | user2    | 132      | ...   |
+--------+----------+----------+-------+
| 3      | user3    | 321      | ...   |
+--------+----------+----------+-------+
Student table
+---------------+--------------+
| users_id (PK) | class        |
+---------------+--------------+
| 1             | highschool   |
+---------------+--------------+
| 3             | middleschool |
+---------------+--------------+
Teacher table
+--------------+-------------------+---------------------+
| users_id (PK)| subscription_type | end_of_subscription |
+--------------+-------------------+---------------------+
| 2            | monthly           | 2017-10-25          |
+--------------+-------------------+---------------------+

父表还有一个与用户 ID 对应的 PK。 我刚刚开始学习 laravel,我真的很想知道我如何才能正确地处理这个问题,也许是 Laravel 5.4 的雄辩。

我给你一些提示,我认为你可以休息,因为你的问题不具体,我猜你在想如何关联/连接表,所以

  1. 创建三个模型,让我们说User, Student, Teacher
  2. 在学生和教师模型中,创建如下所示的方法
public function user()
{
return $this->hasOne(User::class, 'id', 'users_id');
}

现在您可以像这样查询:

$student = Student::find($id) ;
$name = $student->user->name;
$email = $student->user->email ;
Or 
$teachers = Teacher::where('subscription_type', 'monthly')->with(['user'])->get();
dd($teachers);

我认为你需要更新你的数据库结构,你需要pk和fk 列分隔。

最新更新