namespace Quindimotos\ProyectoBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Doctrine\ORM\EntityRepository;
class asignarEmpleadoAServicioType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('ciudad', 'entity', array(
'empty_value' => 'Seleccione Empleado',
'class' => 'QuindimotosProyectoBundle:empleado',
'property_path' => false,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('e')
->join('e.cargo', 'c')
->from('QuindimotosProyectoBundle:Revision', 'r')
->join('r.empleado', 'e1')
->where('c.nombre =:cargo and r.empleado is not null')
->setParameter('cargo', 'tecnico');
}
))
->add('Revision', 'entity', array(
'empty_value' => 'Seleccione Revision Disponible',
'class' => 'QuindimotosProyectoBundle:revision',
'property_path' => false,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('r')
->where('r.recividopor is null');
}));
}
public function getName() {
return 'contact';
}
}
在下一行我不知道为什么它不起作用
->where('c.nombre =:cargo and r.empleado is null')
条款哪里好,但条件“为空”并没有显示任何内容,但我知道有一些东西要显示。
在这一行中,这个条款没有问题,“is null”运作良好
->where('r.recividopor is null');
有人可以告诉我这里有什么问题。
答案 0 :(得分:0)
使用常规运算符将值与“null”值进行比较时,将导致结果集为空,因为比较不会产生布尔值(而是返回NULL)
你必须避免比较,一种方法是:SELECT IFNULL(e.cargo,0) AS e.cargo
然后你可以在where c.nomber = e.cargo
中使用它。