symfony2のadmingeneratorモジュールでdoctrineormを使用していますが、2つのテーブルを含む選択カウントを実行できません。 これについての考えを本当にいただければ幸いです。よろしくお願いします!
これはquerybuilder式です:
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();
}
}
私が使用している2つのエンティティは次のとおりです。
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のアソシエーションアノテーションはdoctrine:generate-entities(Users.fbidからのfbidの外部キー参照を含む)によって自動的に生成されましたが、Users(1:n)のアノテーションは私の知る限り手動で挿入されました。
クエリビルダーとアノテーションを何度も編集しようとしましたが、最終的には次のようになります。
テンプレートのレンダリング中に例外がスローされました(「キャッチ可能な致命的なエラー:クラスDoctrine \ ORM \ PersistentCollectionのオブジェクトをC:\ xampp \ htdocs \ symfony2 \ app \ cache \ dev \ twig\eaで文字列に変換できませんでした\ 85 \ 2b678090e942db52cc01e3950dbc.php line 225 ")Admingenerated / ShlomiUsersBundle / Resources / views / UsersList / index.html.twig atline92。
ありがとう、イオン