2
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')

句 where is ok but condition "is null" は何も表示されませんが、表示するものがあることはわかっています。

そして、この行では、OKで「is null」であるこの句がうまく機能しています

->where('r.recividopor is  null');

ここで何が問題なのか、誰かが私に言うことができます。

4

1 に答える 1

0

通常の演算子を使用して値を「null」値と比較すると、空の結果セットになります。これは、比較によってブール値が返されないためです (代わりに NULL が返されます)。

比較を避ける必要があります。1 つの方法は、SELECT IFNULL(e.cargo,0) AS e.cargoそれを where 句で使用できることですc.nomber = e.cargo

于 2013-02-28T21:00:45.903 に答える