forms – 表单选择类型字段symfony的实体中的字段数组类型

forms – 表单选择类型字段symfony的实体中的字段数组类型,第1张

概述我想在我的系统后端为创建用户创建一个UserForm. 我使用一个带有’role’字段的实体作为类型数组 我想使用选择字段类型Form与该实体字段. 我使用变换器类系统在实体和表单之间转换数据. 但我转过头来,没有任何正常运行. 当我使用选项类型的选项’multiple’时,我的字段显示正确,但我不想显示并为该字段选择多个值. 我有通知:未定义的偏移量:0错误 要么 我有ContextErrorE 我想在我的系统后端为创建用户创建一个UserForm.
我使用一个带有’role’字段的实体作为类型数组
我想使用选择字段类型Form与该实体字段.
我使用变换器类系统在实体和表单之间转换数据.

但我转过头来,没有任何正常运行.

当我使用选项类型的选项’multiple’时,我的字段显示正确,但我不想显示并为该字段选择多个值.

我有通知:未定义的偏移量:0错误
要么
我有ContextErrorException:注意:数组到字符串转换

这几个基本代码:

UserForm类

$builder->add($builder->create('roles','choice',array(    'label' => 'I am:','mapped' => true,'expanded' => false,'multiple' => false,'choices' => array(        'RolE_norMAL' => 'Standard','RolE_VIP' => 'VIP',)))->addModeltransformer($transformer));

变压器类

class StringToArraytransformer implements DatatransformerInterface{    public function transform($array)    {        return $array[0];    }    public function reversetransform($string)    {        return array($string);    }}

控制器方法

$user = new User(); //init entity$form = $this->createForm(new UserForm(),$user);$form->handleRequest($request);if ($form->isValID()){    $em = $this->getDoctrine()->getManager();    $em->persist($form);    $em->flush();    return $this->redirect($this->generateUrl('task_success'));}

实体部分

/** * @ORM\Column(name="roles",type="array") */protected $roles;public function getRoles(){    return $this->roles;}public function setRoles(array $roles){    $this->roles = $roles;    return $this;}

我的字段角色实体必须是一个正确运行安全组件Symfony的数组

你能帮助我理解为什么这个字段形式拒绝显示?

我已经在同一个问题上引用了其他问题,但有些事情我不明白,因为没有什么能帮助我解决我的问题.

如果你可以帮我解决我的特殊背景……

感谢支持

解决方法

because security symfony component integration

如果由于要实现的接口而只需要“getRoles”方法,则执行以下 *** 作会更简单(也更简洁):

>再次将实体字段更改为具有类型字符串的角色
>将getter和setter重命名为getRole()和setRole()
>并添加如下的getRoles方法:

public function getRoles(){    return array($this->role);}

>在表单类型中,将字段名称更改为“role”和“multiple”=>假
>拆除模型变压器

这应该是解决方案;)

总结

以上是内存溢出为你收集整理的forms – 表单选择类型字段symfony的实体中的字段数组类型全部内容,希望文章能够帮你解决forms – 表单选择类型字段symfony的实体中的字段数组类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1060698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存