2つの異なるエンティティから値が必要です。私はやり方を知らない。 私がこれまで試した:Doctrine2/Symfony2で自分のリポジトリ内の外部リポジトリを取得するには?
<?php
namespace Pond\GeolocBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
* PondLakeRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class PondLakeRepository extends EntityRepository
{
public function getSwimsAvailableById($id)
{
// get the nb of swims of a lake
$lake = $this->findOneById($id);
$swims = $lake->getSwims();
$repository = $this->getDoctrine()
->getManager()
->getRepository('PondGeolocBundle:User_Lake');
//get the nb of users in a lake
$qb = $this->_em->createQueryBuilder();
$qb->select('count(a.id)');
$qb->from('PondGeolocBundle:User_Lake', 'a');
$nbOfUsers = $qb->getQuery()->getSingleScalarResult();
// return the nb of swims available onthis lake
$avail = $swims - $nbOfUsers;
print_r ($avail);
}
}
は助けてください 動作しません。 おかげ
あなたがあなたの答えにそれを指定していないので(そして、OPがそれを問題にしなかったので)、symfony2.2 ' - > getEntityManager()'が廃止され、symfony3で削除されます。 symfony2.2を既にお持ちの場合は、 ' - > getManager()'を使用してください。 – DonCallisto
@DonCallisto 'getEntityManager'は教訓メソッドであり、Symfony2とは関係ありません。 symfony2はカスタムリポジトリを自動的に設定していますか? – Ocramius
@Ocramius:実際にあなたは正しいです。 symfony2.2とdoctrine(別のバージョン)に同時にアップグレードして、これを混乱させたようです。実際にコメントは私が廃止予定のコールをすべて削除するのと同じ日に掲示されています。私は「マインドカットアンドペースト」を行っています:) – DonCallisto