Кэширование результата Doctrine 2 в Symfony с сущностью типа формы - PullRequest
3 голосов
/ 17 декабря 2011

Я использую кэширование результатов APC в docrine, у меня есть форма фильтра с типом entity на всех страницах веб-сайта и я хочу кэшировать это, но когда я добавляю useResultCache () к методу, я получаю исключение

Объектами, переданными в поле выбора, необходимо управлять

пример ...-> getQuery () -> useResultCache (true, null, 'someindex') -> getResult ()

но все действия без form с entity type работают нормально.

Есть идеи?

1 Ответ

3 голосов
/ 05 июня 2013

Не знаю, понял ли Ты, как это сделать, но вот как я это сделал (потратил полдня, чтобы понять это).

/* in FormType.php */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $items = $options['entity_repository']
        ->findItems()
        ->useResultCache(true, 3600, 'my_cache')
        ->getResult();

    $choice_list = new ObjectChoiceList($items, 'name', array(), null, 'id');
    $builder->add('item', 'entity', array(
        'class' => 'MyBundle:Items',
        'multiple' => true,
        'expanded' => true,
        'choice_list' => $choice_list,
    ));
}
...