Laravel Nova API - 你能对请求的资源或镜头应用过滤器吗
Laravel Nova API - Can you apply a filter to a requested resource or lens
在通过 API 获取镜头时是否可以(或有人找到方法)应用滤镜,即;
http://my-site.test/nova-api/my-model/lens/my-lens?filter=MyFilter
如果有人知道如何添加多个过滤器,那么添加多个过滤器的能力也会很酷
我想出了怎么做,过滤器在 $request->filters
中进行 base64 编码后通过,示例;
[
{"class":"App\Nova\Filters\MyFilter","value":1}
]
假设这是您的 "filters" 负载,您对其进行 base64 编码;
Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=
那么您要经过的 URL 将是;
http://my-site.test/nova-api/my-model/lens/my-lens?filters=Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=
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 !!}
在通过 API 获取镜头时是否可以(或有人找到方法)应用滤镜,即;
http://my-site.test/nova-api/my-model/lens/my-lens?filter=MyFilter
如果有人知道如何添加多个过滤器,那么添加多个过滤器的能力也会很酷
我想出了怎么做,过滤器在 $request->filters
中进行 base64 编码后通过,示例;
[
{"class":"App\Nova\Filters\MyFilter","value":1}
]
假设这是您的 "filters" 负载,您对其进行 base64 编码;
Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=
那么您要经过的 URL 将是;
http://my-site.test/nova-api/my-model/lens/my-lens?filters=Ww0KICAgICAgICB7ImNsYXNzIjoiQXBwXFxOb3ZhXFxGaWx0ZXJzXFxNeUZpbHRlciIsInZhbHVlIjoxfQ0KICAgIF0=
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 !!}