我有一个名为Images的模型 我有另一个名为Categories
的模型图像可以包含多个类别,类别也可以包含多个图像。它们通过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的功能。
答案 0 :(得分:2)
如果您想要在结果中嵌套categories
的所有图片,您应该使用预先加载:
$images = Image::with('categories')->get();
或者:
$images = Image::where('foo', 'bar')->with('categories')->get();