Laravel包含关系结果(如果存在)
我正在尝试编写一个查询,其中返回所有项目(产品),如果该特定项目(多对多)存在关系,则该信息也将包含在内。当我在查询中包含当前的关系时,它只返回具有该关系的项,而不是每个项上的,无论该关系是否存在 以下是我目前的疑问:Laravel包含关系结果(如果存在),laravel,eloquent,many-to-many,Laravel,Eloquent,Many To Many,我正在尝试编写一个查询,其中返回所有项目(产品),如果该特定项目(多对多)存在关系,则该信息也将包含在内。当我在查询中包含当前的关系时,它只返回具有该关系的项,而不是每个项上的,无论该关系是否存在 以下是我目前的疑问: public static function filterProduct($vars) { $query = Product::query(); if((array_key_exists('order_by', $vars)) &&am
public static function filterProduct($vars) {
$query = Product::query();
if((array_key_exists('order_by', $vars)) && (array_key_exists('order', $vars))) {
$query = $query->orderBy($vars['order_by'], $vars['order']);
}
if(array_key_exists('category_id', $vars) && $vars['category_id'] != 0) {
$query = $query->whereHas('categories', function($q) use ($vars) {
return $q->where('id', $vars['category_id']);
});
}
if(array_key_exists('manufacturer_id', $vars)) {
$query = $query->whereHas('manufacturer', function($q) use ($vars) {
return $q->where('id', $vars['manufacturer_id']);
});
}
$query = $query->whereHas('options', function($q) use ($vars) {
});
如您所见,当项目具有“选项”关系时,我需要让该特定行在返回日期中包含该关系的详细信息。代码保持原样,但它只返回具有此关系的项,而不是每个项
有人能告诉我这是如何实现的吗
谢谢 我觉得有点愚蠢,因为它太简单了,但通过添加以下内容解决了这个问题:
$query=$query->with('options') 我觉得有点愚蠢,因为它太简单了,但通过添加以下内容解决了这个问题: $query=$query->with('options')