我正在尝试设置“模型”(来自 Symfony Propel Bridge 的 ModelType)表单类型的选定值,但我失败了。
有具有以下结构的产品表:
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(),
));
现在,当我加载表单时,我会得到一个不错的选择下拉菜单,其中包含您所期望的有序类别。
我希望下拉菜单为已经存在的产品显示正确的“选定”类别(用例:在产品编辑表单中)。因此,产品 ID 1 将选择“类别 3”选项。
我尝试设置一个“数据”选项(被忽略),所以我很困惑为什么这么基本的东西看起来如此困难。
任何帮助将不胜感激。
更新:问题已解决,见下文:
$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”,世界上的一切都再次正常。