【发布时间】:2015-10-08 09:50:12
【问题描述】:
假设有三个表:
类别
id
图像类别
image_id
category_id
图片
id
我的想法是图像具有多个类别,因此我制作了一个交叉引用表以将类别附加到图像。在我的交叉表 (image_categories) 中,我使用 image_id 对图像表和 category_id 对类别表创建引用
现在我需要找到属于某个类别的所有图像,因此在我的类中添加类别。
public function images(){
return $this->hasManyThrough('App\Image', 'App\ImageCategory');
}
但我收到一个错误,提示找不到该列。
Unknown column 'image_categories.id' in 'on clause' (SQL: select `images`.*,
`image_categories`.`subcategory_id` from `images` inner join `image_categories`
on `image_categories`.`id` = `images`.`image_category_id` where
`image_categories`.`subcategory_id` = 29)
如果我查看它说的文档:
经历过很多次
“有很多通过”关系提供了一个方便的捷径 通过中间关系访问远距离关系。例如, 一个 Country 模型可能有很多 Post through 一个 User 模型。桌子 因为这种关系看起来像这样:
这听起来很适合这种情况,但我做错了什么?
【问题讨论】:
-
你确定表 images 有 image_category_id 列并且 image_categories 有 id 吗?再次检查
-
@Akam 不,我的想法是图像具有多个类别,因此我制作了一个交叉引用表以将类别附加到图像。所以在我的交叉表(image_categories)中,我使用 image_id 对图像表和 category_id 对类别表创建了一个引用。
标签: php sql eloquent laravel-5