Ian*_*ory 5 php orm doctrine doctrine-1.2
我正在几个Web应用程序项目中使用Doctrine和Symfony.
我已经优化了这些项目中的许多查询,只选择数据库中所需的字段.但是随着时间的推移,新的功能被添加了 - 在一些情况下 - 在代码中使用了额外的字段,导致Doctrine延迟加载器重新查询数据库并在一些页面上驱动查询数量从3到100+
所以我需要更新原始查询以包含所有必填字段.但是,Doctrine似乎没有一种简单的方法可以记录哪个字段导致发出附加查询 - 因此,筛选代码以查找原始查询中不存在的字段的使用是一项艰苦的工作.
当getter访问一个没有水合的字段时,有没有办法让Doctrine记录?
小智 1
我没有遇到过这个问题,只是查看了 Doctrine_Record 类。您是否尝试过向 _get() 方法添加一些调试输出?我认为这部分是您应该寻找解决方案的地方:
if (array_key_exists($fieldName, $this->_data)) {
// check if the value is the Doctrine_Null object located in self::$_null)
if ($this->_data[$fieldName] === self::$_null && $load) {
$this->load();
}
Run Code Online (Sandbox Code Playgroud)