2011-12-17 2 views
3

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

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

пример ...-> GetQuery() -> useResultCache (правда, нулевой 'someindex') -> GetResult()

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

Любые идеи?

+0

Какое исключение выбрасывается, и каково его сообщение? – Crozin

ответ

3

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

/* 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, 
    )); 
} 
Смежные вопросы