- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个数据透视表,以便将教师链接到一个主题,然后将教师链接到一个主题。
我有这样的教师表架构。
| id | first_name | last_name | created_at | updated_at
数据透视表架构是这样的。
| id | teacher_id | subject_id
主题表架构是这样的。
| id | name | created_at | updated_at
这是一个非常基本的表结构,同时我尝试找出来龙去脉。
我的 Teacher.php
模型中有这段代码,它扩展了 Eloquents 模型。
教师可以分配多个科目。
return $this->belongsToMany('App\Models\TeacherSubject', 'teacher_subjects', 'teacher_id', 'id');
这是我遇到的错误..
Syntax error or access violation: 1066 Not unique table/alias: 'teacher_subjects' (SQL: select teacher_subjects.*, teacher_subjects.teacher_id as pivot_teacher_id, teacher_subjects.id as pivot_id from teacher_subjects inner join teacher_subjects on teacher_subjects.id = teacher_subjects.id where teacher_subjects.teacher_id in (1))
在我看来,无论出于何种原因,belongsToMany
都将两个表重命名为相同的名称,这让我完全感到困惑。
谁能指出我哪里做错了?
最佳答案
您的数据透视表不需要模型,laravel 会为您处理关系。只需使用:
教师模型
$this->belongsToMany(Subject::class, 'teacher_subjects');
主题模型
$this->belongsToMany(Teacher::class, 'teacher_subjects');
关于php - 拉维尔 |数据透视表,表名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834469/
我正在使用 git clone 部署我的 Laravel 项目并使用 git pull 进行更新 它工作正常,但每次部署时,我都必须从 config/app.php providers 数组和 ali
我是一名优秀的程序员,十分优秀!