首页 > 解决方案 > 如何过滤急切加载的类?

问题描述

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

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

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

        return $cat;

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

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

标签: laravelcontrollereager-loading

解决方案


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

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


推荐阅读