Symfony 是否有将dql传递给条令标准的方法
我使用的是Symfony3框架,我有用户实体和文件实体。我想在sonata管理用户列表中显示用户上传的所有大小文件的总和。当我想对该字段进行排序时,我得到一个错误:Symfony 是否有将dql传递给条令标准的方法,symfony,doctrine-orm,criteria,sonata-admin,doctrine-query,Symfony,Doctrine Orm,Criteria,Sonata Admin,Doctrine Query,我使用的是Symfony3框架,我有用户实体和文件实体。我想在sonata管理用户列表中显示用户上传的所有大小文件的总和。当我想对该字段进行排序时,我得到一个错误: `Catchable Fatal Error: Argument 1 passed to Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery::entityJoin() must be of the type array, null given, called in /home/mil
`Catchable Fatal Error: Argument 1 passed to Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery::entityJoin() must be of the type array, null given, called in /home/milos/sites/coinaphoto/vendor/sonata-project/doctrine-orm-admin-bundle/Datagrid/ProxyQuery.php on line 143 and defined`
我在用户实体中有一个自定义函数,用于计算文件总数。它返回字符串
我的问题是,我是否可以通过某种方式将dql传递给标准,以获得总和。或者你能建议一些其他的方法来实现这一点吗
` public function getStoragge(){
$criteria = Criteria::create()
->where(Criteria::expr()->someexpression...);
$matches = $this->file->matching($criteria);
}`
类似于需要聚合字段时的情况
` $dql = "SELECT SUM(e.amount) AS balance FROM Bank\Entities\Entry e " .
"WHERE e.account = ?1";
$balance = $em->createQuery($dql)
->setParameter(1, $myAccountId)
->getSingleScalarResult();`
我不知道关于dql的事情,但是关于Sonata管理表视图中排序的一些事实。问题是,无论您在模型中执行什么“虚拟”操作,排序操作仍然可以在后台通过数据库操作进行。如果只向模型添加一个方法,datagrid将无法在排序中包含此方法/属性 我的经验是,您不能按相应表中物理上不可用的字段进行排序。即使您自己编写整个查询,如果单击排序按钮,也会触发另一个完整的查询,忽略您的请求 如果有人告诉我相反的情况,我会很高兴的
另请参见本期我不知道您的dql问题,但了解有关Sonata管理表视图中排序的一些事实。问题是,无论您在模型中执行什么“虚拟”操作,排序操作仍然可以在后台通过数据库操作进行。如果只向模型添加一个方法,datagrid将无法在排序中包含此方法/属性 我的经验是,您不能按相应表中物理上不可用的字段进行排序。即使您自己编写整个查询,如果单击排序按钮,也会触发另一个完整的查询,忽略您的请求 如果有人告诉我相反的情况,我会很高兴的
另请参见此问题是的,我看到了此问题,我只是想问是否有人找到解决方案或使用其他方法。我只是看到了重写排序行为的机会。。。我认为这只是非常深刻的核心内容(不是吗?)。。。不幸的是,直到现在我还没有找到一个方法。。。请告诉我是否有一个舒适的解决方案…是的,我看到了这个问题,我只是想问是否有人找到了解决方案或使用了其他方法。我只是看到了重写排序行为的机会。。。我认为这只是非常深刻的核心内容(不是吗?)。。。不幸的是,直到现在我还没有找到一个方法。。。请告诉我是否有一个舒适的解决方案。。。