EasyAdmin 4 - 使用过滤器生成 URL

EasyAdmin 4 - generate URL with filter

我需要将我的用户重定向到应用过滤器“STATUS = ACTIVE”的 CRUD 索引。

我有这个:

$url = $this->adminUrlGenerator
            ->setController(Customer::class)

            ->generateUrl();

return $this->redirect($url);

但我找不到向其添加过滤器的方法。我试过搜索类似的内容:

->setFilter('Status', 'ACTIVE')

但没有任何运气。文档中没有任何内容。怎么做?

EasyAdmin 在您的 url 中处理过滤器,方法是添加多个选项来处理每个过滤器案例。

  1. value
  2. 进行比较
  3. value2(示例:值和值 2 之间)
  4. comparison 表示“等于”、“小于”、“大于”等...

状态 ACTIVE 过滤将修改您的 url 为

&filters[Status][comparison]=%3D&filters[Status][value]=ACTIVE

Note that here %3D is = encoded for the url, but using = would work as well.

所以在使用EA AdminUrlGenerator时,可以使用->set修改选项

您将获得:

$url = $this->adminUrlGenerator
            ->setController(Customer::class)
            ->set('filters[Status][value]', 'ACTIVE')
            ->set('filters[Status][comparison]', '=')
            ->generateUrl();
            

我在 Status 上保留了大小写,但是如果您的 属性 是小写的,请在此处也这样做。