//src/DemoBundle/Repositories/ProductRepository.php
<?php
namespace DemoBundle\Repositories;
use Doctrine\ORM\EntityRepository;
class ProductRepository extends EntityRepository
{
public function findAllOrderedByName()
{
return $this->getEntityManager()
->createQuery(
'SELECT p FROM DemoBundle\Entities\Product p ORDER BY p.name ASC'
)
->getResult();
}
}
//src/DemoBundle/Repositories/ProductPriceRepository.php
<?php
namespace DemoBundle\Repositories;
use Doctrine\ORM\EntityRepository;
use EspierBundle\Traits\RepositoryFactory;
use DemoBundle\Entities\Product;
class ProductPriceRepository extends EntityRepository
{
public static $entityClass = Product::class;
use RepositoryFactory;
public function findAllOrderedByName()
{
return $this->getEntityManager()
->createQuery(
'SELECT p FROM DemoBundle\Entities\Product p ORDER BY p.name ASC'
)
->getResult();
}
}
使用方式如下:
//src/DemoBundle/Tests/ProductTest.php
use DemoBundle\Repositories\ProductPriceRepository;
//...
public function testProductPriceRepository()
{
$productRepository = ProductPriceRepository::instance();
$products = $productRepository->findAllOrderedByName();
$this->assertEquals(count($productRepository->findAll()), count($products));
}