Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2表格-使用Propel ModelType在下拉列表中选择的值_Symfony_Propel - Fatal编程技术网

Symfony2表格-使用Propel ModelType在下拉列表中选择的值

Symfony2表格-使用Propel ModelType在下拉列表中选择的值,symfony,propel,Symfony,Propel,我试图设置一个“model”(来自Symfony推进桥的ModelType)表单类型的选定值,但我失败得很惨 有以下结构的产品表: id, name, category_id 示例数据如下: id => 1, name => 'Test', category_id => 3 另一个表保存类别数据,因此Category_id是外键 id => 1, name => 'Category 1' id => 2, name => 'Category 2' i

我试图设置一个“model”(来自Symfony推进桥的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\u id”更改为“category”,世界上的一切又一次正常了。

顺便说一句,对于那些寻找答案的人来说,把它变成一个更完整的解决方案可能不是一个坏主意。