for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Odiseo\SyliusVendorPlugin\Repository;
use Doctrine\ORM\QueryBuilder;
use Odiseo\SyliusVendorPlugin\Entity\VendorInterface;
use Sylius\Bundle\ResourceBundle\Doctrine\ORM\EntityRepository;
use Sylius\Component\Core\Model\ChannelInterface;
final class VendorRepository extends EntityRepository implements VendorRepositoryInterface
{
/**
* {@inheritdoc}
*/
public function findByEnabledQueryBuilder(?ChannelInterface $channel): QueryBuilder
$queryBuilder = $this->createQueryBuilder('v')
->andWhere('v.enabled = :enabled')
->setParameter('enabled', true)
;
if ($channel) {
$queryBuilder->innerJoin('v.channels', 'channel')
->andWhere('channel = :channel')
->setParameter('channel', $channel)
}
return $queryBuilder;
public function findByChannel(ChannelInterface $channel): array
return $this->findByEnabledQueryBuilder($channel)->getQuery()->getResult();
public function findOneBySlug(string $slug): ?VendorInterface
$vendor = $this->createQueryBuilder('o')
->andWhere('o.slug = :slug')
->andWhere('o.enabled = :enabled')
->setParameter('slug', $slug)
->getQuery()
->getOneOrNullResult()
return $vendor;