我有一个名为 Images 的模型 我有另一个名为“类别”的模型
一个图像可以有多个类别,一个类别也可以有多个图像。它们通过 image_category
表连接,我在 Laravel 的 Eloquent 中制作了模型。
现在,我想获取图像的所有类别,我在 Image.php
模型中执行此操作:
function categories()
{
return $this->belongsToMany("Category", "image_category");
}
现在我希望以下其中一项能够发挥作用:
Image::categories()->get()->toArray();
或者:
Image:all()->categories()->get()->toArray();
上面的方法不起作用,我看到了 Laravel 的文档,并且我看到所有示例都是由方法 find() 给出的:
Images:find(1)->categories()->get()->toArray();
我的问题:我应该如何将关系categories()
与方法all()
或where()
一起使用。
我可以直接用 SQL 编写查询,但我想使用 Eloquent 的功能。
最佳答案
如果您希望所有带有类别
的图像嵌套在结果中,您应该使用预先加载:
$images = Image::with('categories')->get();
或者:
$images = Image::where('foo', 'bar')->with('categories')->get();
关于php - Laravel ownsToMany() 关系与 all() 或 where() 方法一起使用,而不仅仅是 find(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28502717/