Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/ContentBundle/Repository/
Upload File :
Current File : /var/www/v3.cesa.co.za/src/ContentBundle/Repository/FormItemRepository.php

<?php

namespace App\ContentBundle\Repository;

use App\ContentBundle\Entity\FormItem;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use App\ContentBundle\Entity\Form;

/**
 * @extends ServiceEntityRepository<FormItem>
 *
 * @method FormItem|null find($id, $lockMode = null, $lockVersion = null)
 * @method FormItem|null findOneBy(array $criteria, array $orderBy = null)
 * @method FormItem[]    findAll()
 * @method FormItem[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class FormItemRepository extends ServiceEntityRepository {

    public function __construct(ManagerRegistry $registry) {
        parent::__construct($registry, FormItem::class);
    }

    /**
     * Get form items by form
     *
     * @param Form $form
     * @return array
     */
    public function findByForm(Form $form) {
        $qb = $this->createQueryBuilder('fi')
                ->join('fi.forms', 'fif')
                ->join('fif.form', 'fo')
                ->where('fo.id = :formId')->setParameter('formId', $form->getId())
                ->addOrderBy('fif.order_by')
        ;

        return $qb->getQuery()->execute();
    }

    /**
     * Get form items by form
     *
     * @param string $formId
     * @return array
     */
    public function getOtherFormItems($formId = '') {
        $qb = $this->createQueryBuilder('fi');

        if (strlen($formId) > 0) {
            $qb->join('fi.forms', 'fif')
                    ->join('fif.form', 'fo')
                    ->where('fo.id != :formId')->setParameter('formId', $formId)
            ;
        }

        $qb->addOrderBy('fi.prompt');

        return $qb->getQuery()->execute();
    }
}