私はかなり従来のCourse
モデルを持っています。私もBook
のモデルはありません。それらの間に、私はCourseMaterial
モデルを持っています。本棚hasMany()。through()引数は無視されました
私はCourse
モデルにCourse.hasMany('Book').through('CourseMaterial')
というような設定をしようとしていますが、従来とは違うものがあるため、それぞれのキーを指定する必要があります。テーブルは次のように結合します。
courses
テーブルはid
です。courseMaterials
FKとしての表course_id
courses.id
を参照してください。course_materials
テーブルにはidentifier
フィールドがあり、ここではISBN値が記載されています。books
テーブルには、course_materials.identifier
の値に一致するテーブルisbn
があります。私Course
モデルで
は、私の関係は次のようになります。なぜそれはむしろcourse_materials.id
に参加しようとしている
SELECT `books`.*,
`course_materials`.`id` AS `_pivot_id`,
`course_materials`.`course_id` AS `_pivot_course_id`
FROM `books`
INNER JOIN `course_materials`
ON `course_materials`.`id` = `books`.`isbn`
:
books: function() {
return this.hasMany('Book')
.through('CourseMaterial', 'isbn', 'identifier');
},
生成されたSQLは、三番目のパラメータを無視しているようですcourse_materials.identifier
よりも?ドキュメントを誤解していますか?