Symfony2. Как сделать элементарный фильтр для формы?

Надо сделать более-менее примитивный фильтр. Имеется таблица с даннми, которую не мешало бы чуток фильтровать по выбранному ( по умолчанию - текущий год ) году в простом дроп-дауне.
Единственные условия:
- текущий год всегда в списке
- остальные года (например 2013, 2014) читаются ( группируются и аггренируются ) из базы
- обычный POST/GET пока никакого AJAX´а
- использование symfony2-forms предпочтительно.

UPDATE:

пока только остановился на вот этом:

namespace MyBundle\Model\Filter;

class YearModel
{

    /**
     * @var array
     */
    private $years = array();

    /**
     * @return array
     */
    public function getYears()
    {
        return $this->years;
    }

    /**
     * @param $year
     * @return YearModel
     */
    public function addYear( $year )
    {
        /** .... добавить год в список, если еще нет ... */
    }

    /**
     * @param $year
     * @return YearModel
     */
    public function removeYear( $year )
    {
        /** .... удалить, если есть ... */
    }
}


и класс формы:

namespace MyBundle\Form\Filter;

use /** use statements */

class YearFilterType extends AbstractType
{
    const FILTER_TYPE_NAME = 'years_formfilter';

    public function buildForm( FormBuilderInterface $builder, array $options )
    {
      cb_pre_set_data = function( FormEvent $o_event ) use ($em) {
         // достучаться до модели
         // прочитать данные из базы
         // обновить модель 
      };
     
      $builder->add('years', 'choice', array(
        'required'      => true,
        'placeholder'   => false,
      ));
     $builder->addEventListener(FormEvents::PRE_SET_DATA, $cb_pre_set_data);
    }

    public function setDefaultOptions( OptionsResolverInterface $resolver )
    {
       $resolver->setDefaults(array(
          'csrf_protection' => false,
          'data_class'      => "MyBundle\\Model\\Filter\\YearModel"
       ));
    }

    public function getName()
    {
       return self::FILTER_TYPE_NAME;
    }
}


но не работает. точнее список ВСЕГДА пуст... не могу понять на чем спотыкаюсь
  • Вопрос задан
  • 778 просмотров
Пригласить эксперта
Ответы на вопрос 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Я использую jQuery-плагин Datatables. Умеет очень многое, в том числе поможет и в этой задаче.
Лично я вставлял непосредственно через шаблоны, но вот сейчас увидел, что есть два бандла: stwe/DatatablesBundle и brown298/data-tables-bundle.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы