Symfony2表单 - 使用Propel ModelType在Dropdown中选择的值

时间:2013-01-18 08:14:40

标签: symfony propel

我正在尝试设置“模型”(Symfony Propel Bridge中的ModelType)表单类型的选定值,但我失败了。

有Product表,结构如下:

id, name, category_id

示例数据将是:

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

另一个表包含Category数据,因此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'更改为'类别',一切都与世界一致。

0 个答案:

没有答案