如何过滤急切加载的 class?

How do I filter the eager loaded class?

我有一个类别 class,我正在调用 class 中的所有事件并进行预加载。但是我只想显示已批准的事件。我在 Laravel.

中使用显示控制器

我已经能够使用 wherehas() 过滤类别 class,但我不知道如何过滤预加载事件的结果 class。

public function show(Category $category)
    {  
        $cat = $category->with('events')->get();

        return $cat;

        return view('category.show', compact('cat'));
    }

就像我说的那样,我已经能够过滤类别,但我如何通过类别发送已批准 = 1 而不是空的事件?

您可以将回调传递给筛选查询的 with 函数。

$cat = $category->with(['events' => function ($q) {
       $q->where('approved', 1);
    }]
)->get();