Ich benötige Werte von 2 verschiedenen Entitäten. Ich weiß nicht, wie ich es machen soll. Ich habe es bisher versucht:
<?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);
}
}
Funktioniert nicht Bitte helfen Sie. Vielen Dank
Sie können auf EntityManager
zugreifen, indem Sie Doctrine\ORM\EntityRepository#getEntityManager()
aufrufen:
$repository = $this
->getEntityManager()
->getRepository('PondGeolocBundle:User_Lake');
Wenn Sie mehr Abhängigkeiten wünschen, deklarieren Sie Ihre Repositorys als Services, sodass Sie eines einfügen können, um es in den anderen zu verwenden:
services.yml
services:
repository.user_lake:
class: Pond\GeolocBundle\Entity\UserLakeRepository
factory: [@doctrine, getRepository]
arguments:
- PondGeolocBundle:User_Lake
repository.pond_lake:
class: Pond\GeolocBundle\Entity\PondLakeRepository
factory: [@doctrine, getRepository]
arguments:
- PondGeolocBundle:PondLake
calls:
- [setUserLakeRepository, [@repository.user_lake]]
in PondLakeRepository.php benötigen Sie einen Setter (setUserLakeRepository) für eine Eigenschaft, um das Repository (d. h. $ userLakeRepository) zu speichern.