2

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

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

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

4

2 回答 2

7

我想出了如何做到这一点,过滤器在被base64编码后通过$request->filters,例如;

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

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

Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=

那么您将通过的 URL 将是;

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

于 2018-09-24T12:53:53.243 回答
1
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 !!}
于 2020-12-18T08:25:37.860 回答