EasyAdmin 4 - 使用过滤器生成 URL

Tim*_*Tim 4 symfony easyadmin

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

我有这个:

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

            ->generateUrl();

return $this->redirect($url);
Run Code Online (Sandbox Code Playgroud)

但我找不到向其添加过滤器的方法。我尝试过寻找类似的东西:

->setFilter('Status', 'ACTIVE')
Run Code Online (Sandbox Code Playgroud)

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

Dyl*_*Kas 5

EasyAdmin 通过添加多个选项来处理每个过滤器案例来处理您的 url 中的过滤器。

  1. value
  2. value2(示例:value 和 value2 之间)
  3. comparison对于“等于”、“小于”、“大于”等...

按状态 过滤ACTIVE会修改您的网址

&filters[Status][comparison]=%3D&filters[Status][value]=ACTIVE
Run Code Online (Sandbox Code Playgroud)

请注意,这里 %3D 是=针对 url 进行编码的,但使用=也可以。

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

你会得到:

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

我将该案例保留在状态”中,但如果您的属性是小写的,也可以在此处执行此操作。