php - 如何从 Doctrine toMany 关联中过滤掉字段?
问题描述
如果不需要,我需要防止选择某些非常昂贵的字段。
我在数据库中有一个多边形字段,我只想在需要时选择它。对于集合 仅当直接选择此字段时,才不应加载或什至显示在结果SELECT * FROM
部分中。这是我一直在寻找的东西。将收集数据减少到字段的子集以提高 sql 性能。
例如,如果数据库是远程的,我不想将尽可能少的信息从 sql 服务器传输到 php 服务器。
在几何数据的情况下,这些单独的字段最终可能会很大。
我知道我可以在事后过滤集合。我已经在使用带有 FilterInterface 的 Apigility。这有助于最大限度地减少从 php 服务器传输到客户端的数据,而不是从 mysql 服务器传输到 php 服务器的数据。
/**
* @ORM\OneToMany(targetEntity="ContactSearchprofile", mappedBy="contact", cascade={"all"}, orphanRemoval=false)
*/
private $searchprofiles;
public function getSearchprofiles() {return $this->searchprofiles;} // will select everything
在内部它应该只做 arepo->select("The, Fields, I, Want")->where('id = :contact_id');
而不是 a select("*")
。
解决方案
推荐阅读
- ruby-on-rails - 使用 shopify_api gem 更新智能集合中的产品订单时文件错误结束
- visual-studio - 在刷新应用程序模式下运行 Service Fabric 应用程序时的“幻像应用程序”
- java - Spring WebServiceTemplate 的 marshalSendAndReceive 方法在发送 Request 时将 SOAP 标头发送为 null
- javascript - 在严格模式代码中,函数只能在顶层或立即在另一个函数中声明 - Android 4.4、next.js 8.1.0
- mongodb - mongodb高级复杂多过滤器查询
- javascript - 是否可以在 google chrome 中创建一个书签,该书签采用当前 url 并向其中添加一些内容?
- string - sed 从一个文件中选择值并在另一个文件中替换
- vb.net - 随机显示文本文件名,发送到Email并删除
- xml - 在 XSLT 中更改条件的 xml 编码
- typescript - 带有 Typescript 和 ES6 代理的 MongoModel 类