我期待着建立一个与教师、学生和家长打交道的网站。在我创建的数据库中,我创建了一个user
表和 3 个子表:teachers
、students
、parents
。 请参阅下面的表格结构
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 的雄辩。
我给你一些提示,我认为你可以休息,因为你的问题不具体,我猜你在想如何关联/连接表,所以
- 创建三个模型,让我们说
User, Student, Teacher
。 - 在学生和教师模型中,创建如下所示的方法
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 列分隔。