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:
parent
de81b5888f
commit
3ce40e7f23
@ -57,6 +57,23 @@ class ModelRepository extends BaseRepository
|
||||
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)
|
||||
{
|
||||
$queryBuilder = $this->createQueryBuilder('model');
|
||||
@ -90,6 +107,25 @@ class ModelRepository extends BaseRepository
|
||||
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.
|
||||
*
|
||||
|
@ -50,4 +50,18 @@ class SetRepository extends BaseRepository
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user