Symfony formtype query builder associations



我使用的是Symfony 3.2,我想为与另一个实体关联的实体提供一个表单类型:

class Aliment
    // ...
    private enseigneId;
    // ...

class Enseigne
    // ...
    private nomEnseigne
    // ...

Aliment.enseigneId 指的是 Enseigne.id,但我想在我的表单(CRUD,用于创建表单(中做的是让用户选择一个 ID,但我想显示该 ID 的值,这样用户更容易。

这是我的表格类型(票证(中的内容:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('date', DateTimeType::class, array(
            'data' => new DateTime()
        ))
        ->add('aliments')
        ->add('prixTotal')
        ->add('recapitulatif')
        ->add('modePaiement')
        ->add('enseigneId', EntityType::class, array(
            'class' => 'AppBundleEntityEnseigne',
            'choice_label' => function ($enseigne) {
                /** @var $enseigne Enseigne */
                return $enseigne->getNomEnseigne();
            }
        ));
}

但是它一直显示整数 0(而 getNomEnseigne(( 返回一个字符串并且数据库充满了正确的数据集(,我不知道该怎么做。我希望它存储为整数,但我想(在选择字段中(显示为它所引用的 Id 的值。

Id | nomEnseigne | ...
-----------------------
0  | LECLERC     | ...
1  | LIDL        | ...

在上面的示例中,用户将看到字符串"LECLERC",但将改为存储整数 0。

谢谢你的帮助。

你可以尝试其他方法,如

'choice_label' => 'nomEnseigne',

或实现恩塞涅实体的__toString((方法

/**
 * @return string
 */
public function __toString()
{
    if (empty($this->nomEnseigne) {
        return 'enseigne ' . $this->id;
    }
    return (string) $this->nomEnseigne;
}

相关内容

  • 没有找到相关文章

最新更新