如何获取使用symfony2表单提交的实体的ID

时间:2015-09-05 13:07:00

标签: symfony

我的问题非常简单但对我来说很复杂,我有一个symfony2表单CategoryType:

class CategoryType extends AbstractType
{
/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', 'entity', array('class' => 'Mpk\CmsBundle\Entity\Category',
                                      'placeholder' => '',
                                      'property' => 'name',))

        ->add('save', 'submit')
    ;
}

我希望在我的控制器中的submition之后获取所选实体的id我该怎么做?

2 个答案:

答案 0 :(得分:1)

$id_selected = $form->getData()->getName()->getId();

答案 1 :(得分:0)

请注意,新创建的实体时可能无法获取该实体的ID,因为在实体保留在数据库中之前不会生成该实体的ID。如果必须得到它,则必须首先保留该实体。如果无法做到这一点,并且您需要在持久化之前唯一地标识实体,则一些选项可能是手动生成ID,或者使实体名称唯一(并改为使用实体名称),或者创建单独的列/参数并使其独特。当然,所有这些选项都需要您确认您的商品实际上是唯一的。