【发布时间】:2015-09-22 14:23:53
【问题描述】:
我的应用程序中有一个注册表单,我想使用用于 Symfony 的 vmelnik-ukraine/DoctrineEncryptBundle 加密数据。 注册表来自 FOSUserBundle。
我已经配置并安装了bundle,并在Entity中导入了@Encrypted注解,如下所示:
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Component\Validator\Constraints as Assert;
use VMelnik\DoctrineEncryptBundle\Configuration\Encrypted;
/**
* Developer
*
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class Developer extends BaseUser
{
...
/**
* @var string
* @ORM\Column(name="firstname", type="string", length=255)
* @Encrypted
* @Assert\Length(
* min = 2,
* max = 50,
* minMessage = "profile.register.notification.name.too-short",
* maxMessage = "profile.register.notification.name.too-long"
* )
*/
private $firstname;
但是现在,当提交表单时,我收到以下错误:
Field "firstname" is not a valid field of the entity "AppBundle\Entity\Developer" in PreUpdateEventArgs.
我做错了什么?
【问题讨论】:
-
我不确定,但我认为由于 FOSUser 在 BaseUser 中定义了 firstName,因此您的和他们的可能会混淆
-
我检查并没有在用户中定义名字。所以这不是问题。不过谢谢你的建议。
-
也许它应该被保护而不是私有的?我只是在这里猜测
标签: php forms symfony encryption doctrine-orm