Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对照表laravel 5_Php_Sql_Eloquent_Laravel 5 - Fatal编程技术网

Php 对照表laravel 5

Php 对照表laravel 5,php,sql,eloquent,laravel-5,Php,Sql,Eloquent,Laravel 5,假设有三个表: 类别 id image_id category_id id 图像\u类别 id image_id category_id id 图像 id image_id category_id id 我的想法是,一个图像有多个类别,所以我制作了一个交叉引用表,将一个类别附加到图像上。在我的交叉表(image_categories)中,我创建了一个引用,其中image_id指向image表,category_id指向category表 现在我需要找到属于某个类别的所有图像,以

假设有三个表:

类别

id
image_id
category_id
id
图像\u类别

id
image_id
category_id
id
图像

id
image_id
category_id
id
我的想法是,一个图像有多个类别,所以我制作了一个交叉引用表,将一个类别附加到图像上。在我的交叉表(image_categories)中,我创建了一个引用,其中image_id指向image表,category_id指向category表

现在我需要找到属于某个类别的所有图像,以便在我的类类别中添加

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)
如果我看一下文件,上面写着:

有很多到

“有多通”关系提供了一条便利的捷径 通过中间关系访问远程关系。例如 一个国家/地区模型可能通过一个用户模型有许多帖子。桌子 对于此关系,将如下所示:

这听起来非常适合这种情况,但我做错了什么?

如果类别有多个图像,并且图像有多个类别,这里您有一个多对多关系,透视表的名称将是
category\u image
(Eloquent将按字母顺序连接两个相关的模型名称)并且它应该包含两个表的两个ID,即
外键
(如果需要,可以向表中添加更多参数)

因此,只需遵循laravel文档中的说明,它就会顺利运行

注意:如果需要查找属于某个类别的所有图像,那么在类
类别中定义
images()
函数如下:

public function images(){
     return $this->hasMany('App\Image');
}

是否确定表映像具有image\u category\u id列且image\u categories具有id?检查again@Akam不,我的想法是图像有多个类别,所以我制作了一个交叉引用表,将te类别附加到图像上。因此,在我的交叉表(image\u categories)中,我创建了一个引用,其中image\u id指向image表,category\u id指向category表。dos laravel如何知道复数(类别->类别)有内置字典?对于一个项目,我使用的是另一种语言。我不得不使用belongtomany而不是hasMany,但由于你的链接,它起了作用。欢迎你们随时光临。对于多重化,他们使用class
illumb\Support\Pluralizer.php
阅读源代码,如果您愿意,您将发现它实际上是如何工作的。当你使用不同的语言时,请查看。您好@Sveb B您可以建议编辑,我会接受的,提前谢谢。