Laravel Nova API-是否可以将过滤器应用于请求的资源或镜头

时间:2018-09-24 08:16:52

标签: laravel laravel-nova

通过API获取镜头时,是否有可能(或找到一种方法)应用滤镜,即;

http://my-site.test/nova-api/my-model/lens/my-lens?filter=MyFilter

如果有人知道如何添加多个过滤器的功能也将很酷

2 个答案:

答案 0 :(得分:5)

我想出了办法,例如,过滤器是在$request->filters中进行base64编码后通过的;

[
    {"class":"App\\Nova\\Filters\\MyFilter","value":1}
]

假设这是您的“过滤器”有效负载,您对base64进行了编码;

Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=

然后您将通过的URL将是

http://my-site.test/nova-api/my-model/lens/my-lens?filters=Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=

答案 1 :(得分:0)

private function filterize($id)
{
    $filter = base64_encode('[{"class":"App\\\\Nova\\\\Filters\\\\Ticket","value":"'.$id.'"}]');
    return trim($filter);
}

然后只用

http://my-site.test/nova-api/my-model/lens/my-lens?filter={!! filterized_value !!}