Potrzebuję wartości z 2 różnych podmiotów. Nie wiem jak to zrobić. Próbowałem to do tej pory:Jak zdobyć zagraniczne repozytorium w moim repozytorium w 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);
}
}
Nie działa Proszę o pomoc. Dzięki
Ponieważ nie określiłeś tego w swojej odpowiedzi (a OP nie wskazał tego w pytaniu), chcę ci powiedzieć, że ponieważ symfony2.2 '-> getEntityManager()' jest przestarzałe i z symfony3, to będzie usunięty. Użyj '-> getManager()' jeśli masz już symfony2.2 – DonCallisto
@DonCallisto 'getEntityManager' jest metodą doktryną i nie ma nic wspólnego z Symfony2. Czy symfony2 automatycznie ustawia niestandardowe repozytoria? – Ocramius
@Ocramius: w rzeczywistości masz rację. Wygląda więc na to, że uaktualniłem do symfony2.2 i doktryny (innej wersji) w tym samym czasie i pomyliłem to. Właściwie to komentarz został opublikowany w te same dni, w których zaczynam usuwać wszystkie przestarzałe połączenia i zrobiłem "wycinanie i wklejanie" :) – DonCallisto