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

Add related models list

This commit is contained in:
David Hübner 2017-04-13 18:57:25 +02:00
parent 438497f5ca
commit dd3bb0df17
2 changed files with 22 additions and 0 deletions

View File

@ -67,10 +67,13 @@ class ModelController extends Controller
$rbParts = $model != null ? $em->getRepository(Part::class)->findAllByModel($model) : null; $rbParts = $model != null ? $em->getRepository(Part::class)->findAllByModel($model) : null;
$sets = $model != null ? $em->getRepository(Set::class)->findAllByModel($model) : null; $sets = $model != null ? $em->getRepository(Set::class)->findAllByModel($model) : null;
$related = $em->getRepository(Model::class)->findAllRelatedModels($model->getNumber());
return $this->render('model/detail.html.twig', [ return $this->render('model/detail.html.twig', [
'model' => $model, 'model' => $model,
'rbParts' => $rbParts, 'rbParts' => $rbParts,
'sets' => $sets, 'sets' => $sets,
'related' => $related
]); ]);
} catch (\Exception $e) { } catch (\Exception $e) {
$this->addFlash('error', $e->getMessage()); $this->addFlash('error', $e->getMessage());

View File

@ -3,6 +3,8 @@
namespace AppBundle\Repository\LDraw; namespace AppBundle\Repository\LDraw;
use AppBundle\Entity\LDraw\Category; use AppBundle\Entity\LDraw\Category;
use AppBundle\Entity\LDraw\Model;
use AppBundle\Entity\LDraw\Subpart;
use AppBundle\Entity\Rebrickable\Set; use AppBundle\Entity\Rebrickable\Set;
use AppBundle\Entity\Rebrickable\Part; use AppBundle\Entity\Rebrickable\Part;
use AppBundle\Entity\LDraw\Alias; use AppBundle\Entity\LDraw\Alias;
@ -55,4 +57,21 @@ class ModelRepository extends BaseRepository
return $queryBuilder->getQuery()->getResult(); return $queryBuilder->getQuery()->getResult();
} }
public function findAllRelatedModels($number)
{
$queryBuilder = $this->createQueryBuilder('model');
$queryBuilder
->select('related')
->join(Subpart::class, 'subpart', JOIN::WITH, 'model.number = subpart.subpart')
->join(Subpart::class, 'parent', JOIN::WITH, 'subpart.parent = parent.parent')
->join(Model::class, 'related', JOIN::WITH, 'related.number = parent.subpart')
->where('model.number = :number')
->setParameter('number', $number)
->andWhere('related.number != :number')
->distinct(true);
return $queryBuilder->getQuery()->getResult();
}
} }