Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过symfony2中的唯一键验证实体的最佳方法_Symfony_Symfony Forms - Fatal编程技术网

通过symfony2中的唯一键验证实体的最佳方法

通过symfony2中的唯一键验证实体的最佳方法,symfony,symfony-forms,Symfony,Symfony Forms,我正在尝试建立一个表格,收集游戏中新玩家的信息 要开始游戏,需要提供昵称、电子邮件和代码 代码以一对一的关系存储在与播放器表连接的另一个表中 在验证期间,我需要做的是检查提供的令牌是否存在,以及是否存在,并将播放器id存储在代码记录中 为此,我尝试构建一个表单: class PlayerType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) {

我正在尝试建立一个表格,收集游戏中新玩家的信息

要开始游戏,需要提供昵称、电子邮件和代码

代码以一对一的关系存储在与播放器表连接的另一个表中

在验证期间,我需要做的是检查提供的令牌是否存在,以及是否存在,并将播放器id存储在代码记录中

为此,我尝试构建一个表单:

class PlayerType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('code','text')
        ->add('email', 'email') 
        ->add('nick', 'text')
    ;
}
...
}
但在验证过程中(或者可能在创建代码实例时)使用这种方式

这是显而易见的,因为已经提供了字符串

如何在表单验证期间执行查找,并不是传递令牌字符串而是传递令牌实例?

查看。这将允许您创建一个带有标量类型字段的表单,该字段在表单提交上填充模型时转换为实体


关于验证,您需要创建一个检查数据库中是否存在给定代码的实例。

非常酷,而且非常有意义,但该示例不起作用:我得到的选项“em”不存在。已知选项有:“属性”、“块名称”。。。有什么想法吗?发现:
Argument 1 passed to Player::setCode() must be an instance of Code, string given