如何在Symfony表单类型文件中编写原始DQL查询

时间:2017-11-22 12:46:50

标签: symfony doctrine-orm

我已经搜索了一段时间,但找不到明确的答案。

我需要在Symfony CRM中的FormType的__construct函数中编写查询,但是当我尝试在EntityRepository参数中传递__construct类时,我得到以下内容错误:

  

参数1传递给AppBundle \ Form \ CampAttendeeAddType :: __ construct()   必须是Doctrine \ ORM \ EntityRepository的实例,没有给出

这是我的代码:

use \Doctrine\ORM\EntityRepository;

class CampAttendeeAddType extends AbstractType
{

    public function __construct(EntityRepository $er)
    {
        $camp_id = $_GET['id'];
        $query = $er->createQuery('
            SELECT COUNT(*) FROM AppBundle:CampAttendee ca WHERE ca.nonRider = 1 AND ca.campId = ' . $camp_id);
        $non_riders = $query->getOneOrNullResult();

    }
...

我也尝试在函数中明确声明它:

$er = new EntityRepository();

但我得到的只是:

  

缺少Doctrine \ ORM \ EntityRepository :: __ construct()

的参数1

似乎我无法获胜!

我需要能够确定传递给以下字段的选项:

$builder->add('non_rider', ChoiceType::class,
    array(
        'label' => 'Is Non-Rider',
        'required' => true,
        'placeholder' => '-- Please select --',
        'choices' => array(
            'Yes' => 1,
            'No' => 0
        ),
        'label_attr' => array(
            'class' => 'control-label'
        ),
        'attr' => array(
            'class' => 'form-control required'
        )
    ));

一旦达到限制,“是”'选择需要被禁用的笔记取代,该笔记读取的内容类似于“你已经达到了极限”。所以不能再添加了。

这是可能的,如果是这样的话怎么办?

0 个答案:

没有答案