php - 我应该在 Doctrine 中禁用过滤器后启用它还是在下一个请求中自动启用它
问题描述
我正在开发一个 Symfony 项目,并且我正在使用全局过滤器,我需要在一个控制器操作中禁用它。我应该在使用未过滤的结果完成工作后启用它们,还是在下一个请求时自动启用它们?启用过滤器后,我还应该使用clear()
EntityManager 的方法吗?
解决方案
不,如果您的 Doctrine 过滤器默认启用,您不需要在禁用后启用过滤器。
根据 Doctrine Filter 文档,如果您有如下配置:
doctrine:
orm:
filters:
myFilter:
class: MyVendor\MyBundle\Filters\MyFilter
enabled: true
...
并且您使用以下方法禁用控制器内部的过滤器:
public function homepageAction(Request $request)
{
....
/** @var EntityManager $em */
$em = $this->getDoctrine()->getManager();
$filters = $em->getFilters()
->disable('myFilter');
....
}
对于完整的请求,过滤器被禁用。但是,如果您请求另一个控制器,但您没有禁用过滤器,则将应用过滤器。
推荐阅读
- java - 厨师和发电机
- c# - Dapper 存储过程在将 IEnumerable 传递给它时指定了太多参数
- php - 上传最多 100MB 文件时遇到问题
- r - 海洋中的错误(AirPassengers):没有生成输出
- php - json_encode 无法正确输出回显 - CodeIgniter 3、PHP 7.4 + NGINX、Ubuntu 18
- python - Flask 从 request.args 解析查询字符串
- javascript - 使用 CRM REST BUILDER 检索查找实体的值
- mysql-workbench - MySQL JS > pip install mysql_connector SyntaxError: Unexpected identifier
- php - 使用 PHP 将用户密码添加到 AD
- amazon-dynamodb - 如何使用 aws cli 向 dynamodb 添加额外的列?