在Laravel Nova中按非空值过滤

时间:2019-04-18 18:38:29

标签: laravel laravel-nova

我正在尝试使用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,
    ];
}

如何在选项函数中指示非空值?

1 个答案:

答案 0 :(得分:1)

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

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,
    ];
}