Symfony 从带有一些空白文本区域的表单中获取查询

Symfony get query from form with some empty text areas

我想知道有没有填充的文本区域有的没填充的文本区域有查询结果。

示例:

$form = $this->get('form.factory')->create(new UsersType(), new Users())
            ->add('firstname', 'text', array('required' => false, 'label' => 'First name '))
            ->add('lastname', 'text', array('required' => false, 'label' => 'Last name '))
        ;

$idm = $em->getRepository('MyBundle:Users')->findBy(
                array('number' => $form->get('number')->getData(),
                    'firstname' => $form->get('firstname')->getData(),
                    'lastname' => $form->get('lastname')->getData()
            ));

我希望它忽略未填写的文本并仅使用已填写的文本执行查询。

谢谢!

$lookups = array('number', 'firstname', 'lastname');
$queryArray = array();

foreach($lookups as $lookup){
    $fieldData = $form->get($lookup)->getData();
    if(!empty($fieldData)){
        $queryArray[$lookup] = $fieldData;
    } 
}

if(sizeof($queryArray) > 0){
     $idm = $em->getRepository('MyBundle:Users')->findBy($queryArray);
}