在Doctrine中,可以使用Entity的属性和关联关系来填充选择字段。具体步骤如下:
/**
* @ORM\Entity
*/
class User
{
// ...
/**
* @ORM\Column(type="string")
*/
private $roles;
// ...
}
/**
* @ORM\Entity
*/
class User
{
// ...
/**
* @ORM\Column(type="string")
*/
private $roles;
// ...
public function getAvailableRoles()
{
// 查询数据库或其他方式获取可选的角色值
// 返回一个数组或其他适当的数据结构
return ['ROLE_ADMIN', 'ROLE_USER', 'ROLE_GUEST'];
}
}
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('roles', ChoiceType::class, [
'choices' => $options['data']->getAvailableRoles(),
])
// ...
;
}
}
在上述代码中,我们将User实体类中的getAvailableRoles方法返回的可选角色值传递给ChoiceType字段类型的choices选项。
通过以上步骤,我们可以根据Doctrine中以前选择的值填充选择字段。这样,在表单中显示选择字段时,它将自动填充以前选择的值,并提供可选的值供用户选择。
腾讯云相关产品和产品介绍链接地址:
腾讯云存储专题直播
企业创新在线学堂
企业创新在线学堂
云原生正发声
企业创新在线学堂
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云