tinternet.net/src/Repository/Site/NodeRepository.php

39 lines
1,014 B
PHP

<?php
namespace App\Repository\Site;
use App\Entity\Site\Node;
use Doctrine\ORM\EntityManagerInterface;
use Gedmo\Tree\Entity\Repository\NestedTreeRepository;
class NodeRepository extends NestedTreeRepository
{
public function __construct(EntityManagerInterface $manager)
{
parent::__construct($manager, $manager->getClassMetadata(Node::class));
}
public function urlExists($url, Node $node)
{
$query = $this->createQueryBuilder('n')
->join('n.menu', 'm')
->where('n.url = :url')
->andWhere('m.navigation = :navigation')
->setParameter(':url', $url)
->setParameter(':navigation', $node->getMenu()->getNavigation())
;
if ($node->getId()) {
$query
->andWhere('n.id != :id')
->setParameter(':id', $node->getId())
;
}
return $query->getQuery()
->setMaxResults(1)
->getOneOrNullResult()
;
}
}