symfony2のadmingeneratorモジュールでdoctrine ormを使用していますが、2つのテーブルを含むselect countを実行できません。 私は本当にこれについての任意の考えに感謝します。ありがとうございます!私が使っている2つのエンティティがあるdoctrine orm count joinの1:n関係
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;
....
友情で関連注釈が持つのに対し
これはquerybuilder式です自動化されたユーザー(1:n)内の注釈が私の知る限り手動で挿入されたdoctrine:generate-entities(Users.fbidからのfbidの外部キー参照を含む)によって生成されたものです。
私は何度も何度も、クエリビルダと注釈を編集しようとしたが、最後に、私はこれを取得:
An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class Doctrine\ORM\PersistentCollection could not be converted to string in C:\xampp\htdocs\symfony2\app\cache\dev\twig\ea\85\2b678090e942db52cc01e3950dbc.php line 225") in Admingenerated/ShlomiUsersBundle/Resources/views/UsersList/index.html.twig at line 92.
おかげで、 イオン
私は注釈を完全に誤解していたようです。 このページには関係を設定するための完全な情報が含まれていますが、それを理解するにはかなりの頭脳が必要です。 [関連](http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0 .x/reference/association-mapping.html) –
ORMのようにdoctrineが動作するため、SQL文ではなくArrayCollection属性のオブジェクトからレコードを数える必要はありません。 $クエリ=の$ this - > getDoctrine() - > getEntityManager() - > createQueryBuilder() - >( 'Q、F ')を選択 - >(' Shlomi \ UsersBundle \エンティティ\ユーザー' から、 'q') - > leftJoin( 'q.friends'、 'f'); –
'admingenerated/ShlomiUsersBundle/Resources/views/UsersList/index.html.twig'のコードで質問を更新できますか?少なくとも92行目をコーディングしてください。 – Kosta