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', и с миром все было в порядке.