for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Psi\Component\Grid\Filter;
use Psi\Component\Grid\FilterDataInterface;
use Psi\Component\Grid\FilterInterface;
use Psi\Component\ObjectAgent\Query\Comparison;
use Psi\Component\ObjectAgent\Query\Expression;
use Psi\Component\ObjectAgent\Query\Query;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class BooleanFilter implements FilterInterface
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
$builder->add('checkbox', CheckboxType::class);
}
public function getExpression(string $fieldName, FilterDataInterface $data): Expression
return Query::comparison(
Comparison::EQUALS,
$fieldName,
$data->getValue()
);
public function configureOptions(OptionsResolver $options)
$options->setDefault('data_class', StringFilterData::class);
$options->setDefault('empty_data', function (FormInterface $form) {
return new BooleanFilterData(
$form->get('value')->getData()
});