Symfony2 Forms - выбранное значение в раскрывающемся списке с помощью Propel ModelType

Я пытаюсь установить выбранное значение типа "модель" (ModelType из Symfony Propel Bridge), и у меня ничего не получается.

Существует таблица Product со следующей структурой:

id, name, category_id

Пример данных будет:

id => 1, name => 'Test', category_id => 3

Другая таблица содержит данные категории, поэтому category_id является внешним ключом.

id => 1, name => 'Category 1'
id => 2, name => 'Category 2'
id => 3, name => 'Category 3'

Тип формы, с которой я работаю:

$builder->add('category_id', 'model', array(
    'class' => 'Foo\BarBundle\Model\Category',
    'required' => true,
    'multiple' => false,
    'expanded' => false,
    'label' => 'Pick a product category!',
    'query' => CategoryQuery::create()->orderByName(),
));

Теперь, когда я загружаю форму, я получаю хороший выпадающий список, содержащий упорядоченные категории, как и следовало ожидать.

В раскрывающемся списке я хотел бы отобразить правильную "выбранную" категорию для уже существующего продукта (вариант использования: в форме редактирования продукта). Таким образом, для идентификатора продукта 1 будет выбран вариант "Категория 3".

Я попытался установить опцию "data" (которая была проигнорирована), поэтому я озадачен тем, почему что-то столь фундаментальное кажется таким трудным.

Любая помощь будет принята с благодарностью.

ОБНОВЛЕНИЕ: проблема решена, см. Ниже:

$builder->add('category', 'model', array(
    'class' => 'Foo\BarBundle\Model\Category',
    'required' => true,
    'multiple' => false,
    'expanded' => false,
    'label' => 'Pick a product category!',
    'query' => CategoryQuery::create()->orderByName(),
));

Изменил 'category_id' на 'category', и с миром все было в порядке.

0 ответов

Другие вопросы по тегам