【问题标题】:How do I filter the eager loaded class?如何过滤急切加载的类?
【发布时间】:2019-03-28 07:01:34
【问题描述】:

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

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

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

        return $cat;

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

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

【问题讨论】:

    标签: laravel controller eager-loading


    【解决方案1】:

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

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

    【讨论】:

    • 这在一定程度上有效,只是它现在列出了我的所有类别。我做了更多的尝试并让它工作``` $category->load(['events' => function ($query) { $query->whereNotNull('approved'); }])->get (); ```非常感谢您为我指明了正确的方向!
    猜你喜欢
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多