我正在使用来自 symfony2 的 admingenerator 模块的教义 orm,我无法进行涉及两个表的选择计数。 我真的很感激对此的任何想法。提前非常感谢!
这是查询构建器表达式:
class ListController extends BaseListController
{
protected function getQuery()
{
$query = $this->getDoctrine()
->getEntityManager()
->createQueryBuilder()
->select('q, count(f.fbid) AS no')
->from('Shlomi\UsersBundle\Entity\users', 'q')
->leftJoin('q.fbid' , 'f')
->groupBy('q.fbid');
$this->processSort($query);
$this->processFilters($query);
$this->processScopes($query);
return $query->getQuery();
}
}
我使用的两个实体是:
class Users
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var bigint $fbid
*
* @ORM\OneToMany(targetEntity="Friendships", mappedBy ="fbid")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="fbid", referencedColumnName="fbid")
* })
*/
private $fbid;
....
和
class Friendships
{
/**
* @var integer $Id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $Id;
/**
* @var Users
*
* @ORM\ManyToOne(targetEntity="Users", inversedBy="fbid")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="fbid", referencedColumnName="fbid")
* })
*/
private $fbid;
....
虽然 Friendships 中的关联注释是由学说自动生成的:generate-entities(包含来自 Users.fbid 的 fbid 的外键引用),但据我所知,Users(1:n) 中的注释是手动插入的。
我已经尝试一遍又一遍地编辑查询生成器和注释,但最后我得到了这个:
渲染模板期间抛出异常(“Catchable Fatal Error: Object of class Doctrine\ORM\PersistentCollection could not be convert to string in C:\xampp\htdocs\symfony2\app\cache\dev\twig\ea \85\2b678090e942db52cc01e3950dbc.php 第 225 行") 在第 92 行的 Admingenerated/ShlomiUsersBundle/Resources/views/UsersList/index.html.twig 中。
谢谢,离子