1
0
mirror of https://github.com/ToxicCrack/PrintABrick.git synced 2025-05-17 21:00:09 -07:00

Add search queries

This commit is contained in:
David Hübner 2017-04-24 11:34:47 +02:00
parent de81b5888f
commit 3ce40e7f23
2 changed files with 51 additions and 1 deletions

View File

@ -20,7 +20,7 @@ class ModelRepository extends BaseRepository
$queryBuilder = $this->createQueryBuilder('model') $queryBuilder = $this->createQueryBuilder('model')
// ->where('model.name NOT LIKE :obsolete') // ->where('model.name NOT LIKE :obsolete')
// ->setParameter('obsolete','~%') // ->setParameter('obsolete','~%')
; ;
return $queryBuilder; return $queryBuilder;
} }
@ -57,6 +57,23 @@ class ModelRepository extends BaseRepository
return $this->findOneBy(['name' => $name]); return $this->findOneBy(['name' => $name]);
} }
public function findAllRegularBySetNumber($number)
{
$inventory = $this->getEntityManager()->getRepository(Inventory::class)->findNewestInventoryBySetNumber($number);
$queryBuilder = $this->createQueryBuilder('model');
$queryBuilder
->join(Part::class, 'part', JOIN::WITH, 'part.model = model')
->join(Inventory_Part::class, 'inventory_part', JOIN::WITH, 'part.number = inventory_part.part')
->join(Inventory::class, 'inventory', JOIN::WITH, 'inventory_part.inventory = :inventory')
->setParameter('inventory', $inventory)
->addSelect('inventory_part')
->distinct(true);
return ($queryBuilder->getQuery()->getScalarResult());
}
public function findAllBySetNumber($number) public function findAllBySetNumber($number)
{ {
$queryBuilder = $this->createQueryBuilder('model'); $queryBuilder = $this->createQueryBuilder('model');
@ -90,6 +107,25 @@ class ModelRepository extends BaseRepository
return $queryBuilder->getQuery()->getResult(); return $queryBuilder->getQuery()->getResult();
} }
public function findByQuery($query, $limit = null) {
$queryBuilder = $this->createQueryBuilder('model');
$queryBuilder->where(
$queryBuilder->expr()->orX(
$queryBuilder->expr()->like('model.number', ':number'),
$queryBuilder->expr()->like('model.name', ':name')
))
->setParameter('name', '%'.$query.'%')
->setParameter('number', $query.'%');
if($limit) {
$queryBuilder->setMaxResults($limit);
}
return $queryBuilder->getQuery()->getResult();
}
/** /**
* Create new Model entity with $number or retrieve one. * Create new Model entity with $number or retrieve one.
* *

View File

@ -50,4 +50,18 @@ class SetRepository extends BaseRepository
return $queryBuilder->getQuery()->getResult(); return $queryBuilder->getQuery()->getResult();
} }
public function findByQuery($query, $limit = null) {
$queryBuilder = $this->createQueryBuilder('s')
->where('s.name LIKE :name')
->orWhere('s.number LIKE :number')
->setParameter('name', '%'.$query.'%')
->setParameter('number', $query.'%');
if($limit) {
$queryBuilder->setMaxResults($limit);
}
return $queryBuilder->getQuery()->getResult();
}
} }