如何使用管理包处理 Symfony 4 中的 perPageOptions 弃用?
How to handle the perPageOptions deprecation in Symfony 4 using the admin-bundle?
最近我将一个 3.4 symfony 项目更新到 4.4,我尝试清除所有新的弃用,但我找不到从管理包中更改这个项目的方法。我延长
protected $perPageOptions = [16, 32, 64, 128, 256];
属性 您可以在
vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php
并添加 我的一些页面 额外选项。我如何在这个新版本中做到这一点。是解决方法还是他们只是停止使用它并需要自己制作?我在任何地方都找不到关于这个主题的任何建议。
看来您需要重新定义 getPerPageOptions
方法,请参阅下面的 https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Admin/AbstractAdmin.php#L2550
/**
* Returns predefined per page options.
*
* @return array<string, mixed>
*/
public function getPerPageOptions()
{
// NEXT_MAJOR: Remove this line and uncomment the following
return $this->perPageOptions;
// $perPageOptions = [10, 25, 50, 100, 250];
// $perPageOptions[] = $this->getMaxPerPage();
//
// $perPageOptions = array_unique($perPageOptions);
// sort($perPageOptions);
//
// return $perPageOptions;
}
因此在您的扩展管理中删除此行:
protected $perPageOptions = [16, 32, 64, 128, 256];
然后添加此块:
public function getPerPageOptions()
{
$perPageOptions = [16, 32, 64, 128, 256];
$perPageOptions[] = $this->getMaxPerPage();
$perPageOptions = array_unique($perPageOptions);
sort($perPageOptions);
return $perPageOptions;
}
最近我将一个 3.4 symfony 项目更新到 4.4,我尝试清除所有新的弃用,但我找不到从管理包中更改这个项目的方法。我延长
protected $perPageOptions = [16, 32, 64, 128, 256];
属性 您可以在
vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php
并添加 我的一些页面 额外选项。我如何在这个新版本中做到这一点。是解决方法还是他们只是停止使用它并需要自己制作?我在任何地方都找不到关于这个主题的任何建议。
看来您需要重新定义 getPerPageOptions
方法,请参阅下面的 https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Admin/AbstractAdmin.php#L2550
/**
* Returns predefined per page options.
*
* @return array<string, mixed>
*/
public function getPerPageOptions()
{
// NEXT_MAJOR: Remove this line and uncomment the following
return $this->perPageOptions;
// $perPageOptions = [10, 25, 50, 100, 250];
// $perPageOptions[] = $this->getMaxPerPage();
//
// $perPageOptions = array_unique($perPageOptions);
// sort($perPageOptions);
//
// return $perPageOptions;
}
因此在您的扩展管理中删除此行:
protected $perPageOptions = [16, 32, 64, 128, 256];
然后添加此块:
public function getPerPageOptions()
{
$perPageOptions = [16, 32, 64, 128, 256];
$perPageOptions[] = $this->getMaxPerPage();
$perPageOptions = array_unique($perPageOptions);
sort($perPageOptions);
return $perPageOptions;
}