在Laravel Nova中按非空值过滤

问题描述 投票:2回答:1

我正在尝试使用Laravel Nova实现基本过滤器。过滤器查看字段“onboarded_at”,这是一个日期时间字段。如果属性具有时间戳,则它们是加入的,如果不是,则它们不是。

这是我的过滤器:

public function apply(Request $request, $query, $value)
{
    return $query->where('onboarded_at', $value);
}

public function options(Request $request)
{
    return [
        'Onboarded' => !NULL, // How would I indicate a non-null value here?
        'Not Onboarded' => NULL,
    ];
}

如何在options函数中指出非null值?

laravel laravel-nova
1个回答
1
投票

使用$value param根据需要修改查询:

public function apply(Request $request, $query, $value)
{
    if($value) {
        return $query->whewhereNotNull('onboarded_at');
    }
    return $query->whereNull('onboarded_at');
}

public function options(Request $request)
{
    return [
        'Onboarded' => 1,
        'Not Onboarded' => 0,
    ];
}
© www.soinside.com 2019 - 2024. All rights reserved.