Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Laravel包含关系结果(如果存在)_Laravel_Eloquent_Many To Many - Fatal编程技术网

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')