Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令实体循环通过另一实体_Php_Doctrine Orm - Fatal编程技术网

Php 条令实体循环通过另一实体

Php 条令实体循环通过另一实体,php,doctrine-orm,Php,Doctrine Orm,我目前有一个与PropertyRates有关系的Property实体。我需要了解最新的一个PropertyRate已经更新。目前,我在属性实体中有一个函数来循环关联的PropertyRate并返回最新的PropertyRate->dateModified。这会很快在数千个属性中循环,耗尽内存 public function getRatesDateModified() { $retval = new \DateTime("2000-01-01T06:00:00Z"); forea

我目前有一个与PropertyRates有关系的Property实体。我需要了解最新的一个PropertyRate已经更新。目前,我在属性实体中有一个函数来循环关联的PropertyRate并返回最新的PropertyRate->dateModified。这会很快在数千个属性中循环,耗尽内存

public function getRatesDateModified()
{
    $retval = new \DateTime("2000-01-01T06:00:00Z");
    foreach($this->propertyRates as $rate) {
        if($retval < $rate->getDateModified()) {
            $retval = $rate->getDateModified();
        }
    }

    return $retval;
}
公共函数getRatesDataModified()
{
$retval=new\DateTime(“2000-01-01T06:00:00Z”);
foreach($this->propertyRates为$rate){
如果($retval<$rate->getDateModified()){
$retval=$rate->getDateModified();
}
}
返回$retval;
}

这就是这个函数应该放的地方吗?将其放在存储库中似乎是不对的,因为它是特定于单个实体的,但没有访问EntityManager的权限,因此我可以分离内存不足的属性。如果您使用的是条令,我建议使用。也许是这样的

<?php

use Doctrine\Common\Collections\Criteria;

$entity = $entityManager->find('Entity', $id);
$propertyRates = $entity->getPropertyRates();

$criteria = Criteria::create()
    ->where(Criteria::expr()->orderBy(["dateModified"]))
    ->setFirstResult(0)
    ->setMaxResults(20);

$result = $userCollection->matching($criteria)[0];

美元组来自哪里?还有,这个代码会放在哪里?我当前调用getRatesDataModified()的地方?这是一个复制粘贴示例,其中包含文档中的修改。$entity应该是包含PropertyRates集合的实体。我建议将此代码放在存储库中。我会接受你的答案,因为这是正确的方法,但它不像条令的每一部分那样对我有效,它会抛出一些无用的错误。我将在Repo中使用DQL查询。