2013-02-13 2 views
1

Мне нужно настроить собственный тип формы в Symfony, который использует тип выбора в качестве родителя, но на самом деле не требует предварительного выбора. Как и в случае, я хочу, чтобы можно было заполнить выбор с помощью ajax-вызова, а затем отправить с одним из вариантов из вызова без получения ошибок This value is not valid., по-видимому, потому, что он не является одним из предустановленных параметров.Пользовательский тип формы symfony

Мне не нужен специальный преобразователь данных, поскольку я делаю это через контроллер связки, мне просто нужно, чтобы Symfony не жаловался, когда я отправляю с опцией, которая не была первоначально в списке. Вот что мой пользовательский тип форма выглядит так далеко:

<?php 

namespace ISFP\Index\IndexBundle\Form\Type; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class NullEntityType extends AbstractType 
{ 
    public function getDefaultOptions(array $options) 
    { 
     $defaultOptions = array(
      'em'    => null, 
      'class'    => null, 
      'property'   => null, 
     ); 

     $options = array_replace($defaultOptions, $options); 

     return $options; 
    } 

    public function getParent() 
    { 
     return 'choice'; 
    } 

    public function getName() 
    { 
     return 'null_entity'; 
    } 
} 
+0

Никто? Я бы подумал, что это довольно простой вопрос для тех, кто знал, что они делают ...? –

+0

1. 7 часов не очень долго ждать, прежде чем вы предполагаете, что никто не может или не поможет. 2. На самом деле вы не задали вопрос. – Lighthart

+0

Haha lighthart, правда, однако Im немного нажал на время, поскольку Im предназначался для доставки этого веб-сайта клиенту позже сегодня вечером. –

ответ

0

Чувак взгляд на EntityType она имеет родителя как choice. Но весь дисплей был обработан ChoiceType. Когда я делал подобные вещи, я начал с перегрузки Оба ChoiceType и EntityType. А затем установите в перегруженном Entity getParent() моему перегруженному выбору.

Наконец, в моем случае я изменяю новый choice и размещаю там свою встроенную форму. Это сложно сделать. И он потребляет много времени.

Но с таким подходом у меня нет никаких проблем с валидацией.

+0

Не могли бы вы прокомментировать этот ответ? Возможно, вы можете создать какой-то рабочий код, чтобы я мог реплицировать ваше решение? Спасибо вам за ваши предложения! –

+0

Вы используете symfony2.0 или symfony 2.1? –

Смежные вопросы