symfony3 : query_builder 按布尔字段搜索
symfony3 : query_builder search by boolean field
我有一个表单搜索,我想 select 通过布尔字段获取数据。问题是,如果 select 选择 具有错误值 (0) 查询 returns 所有数据,但如果 select 选择 有真值(1)查询正确
形式为:
->add('publier', ChoiceType::class, array(
'required' => false,
'label' => 'Publier',
'choices' => array('oui' => '1', 'non' => '0'),
'multiple' => false,
'expanded' => false,
'attr' => array('class'=> 'form-control')
));
并在 query_builder
if (!empty($publier)) {
$qb->andWhere('a.publier = :publier')
->setParameter('publier', $publier );
}
如果我删除这个测试:if (!empty($publier)) { 并且我 select 一个错误的选择返回的数据是正确的但我不能'不要删除此测试。
我不确定我是否清楚地理解你的问题,但如果你想要的是布尔值,你应该试试这个:
->add('publier', ChoiceType::class, array(
'required' => false,
'label' => 'Publier',
'choices' => array(
'oui' => true,
'non' => false
),
'multiple' => false,
'expanded' => false,
'attr' => array('class'=> 'form-control')
));
不确定它是否有效。你用'1'和'0'的方式,它们是字符串(不是整数)。
我变了
if (!empty($publier))
来自
if (null !== $publier )
现在工作正常
我有一个表单搜索,我想 select 通过布尔字段获取数据。问题是,如果 select 选择 具有错误值 (0) 查询 returns 所有数据,但如果 select 选择 有真值(1)查询正确
形式为:
->add('publier', ChoiceType::class, array(
'required' => false,
'label' => 'Publier',
'choices' => array('oui' => '1', 'non' => '0'),
'multiple' => false,
'expanded' => false,
'attr' => array('class'=> 'form-control')
));
并在 query_builder
if (!empty($publier)) {
$qb->andWhere('a.publier = :publier')
->setParameter('publier', $publier );
}
如果我删除这个测试:if (!empty($publier)) { 并且我 select 一个错误的选择返回的数据是正确的但我不能'不要删除此测试。
我不确定我是否清楚地理解你的问题,但如果你想要的是布尔值,你应该试试这个:
->add('publier', ChoiceType::class, array(
'required' => false,
'label' => 'Publier',
'choices' => array(
'oui' => true,
'non' => false
),
'multiple' => false,
'expanded' => false,
'attr' => array('class'=> 'form-control')
));
不确定它是否有效。你用'1'和'0'的方式,它们是字符串(不是整数)。
我变了
if (!empty($publier))
来自
if (null !== $publier )
现在工作正常