Php Symfony 3表单验证:检查现有数据库条目
我目前正在做我的第一个Symfony项目,并为一个我想要实现的特殊功能而挣扎。Php Symfony 3表单验证:检查现有数据库条目,php,forms,symfony,validation,doctrine,Php,Forms,Symfony,Validation,Doctrine,我目前正在做我的第一个Symfony项目,并为一个我想要实现的特殊功能而挣扎。 我有一个表单,人们必须在其他数据旁边输入许可证密钥才能激活某项服务。 提交表单时,我需要验证所有数据,验证的一部分是检查给定的许可证密钥是否有效(存在于许可证密钥数据库中) 我的表单位于一个单独的表单类中,如下所示(剥离到重要部分): 您可以为此用例编写自己的自定义约束和验证器类 验证器是一种服务,因此您可以根据需要注入任何其他服务。(即实体管理器)。 这样,表单就不必处理验证逻辑本身 您可以为此用例编写自己的自定
我有一个表单,人们必须在其他数据旁边输入许可证密钥才能激活某项服务。
提交表单时,我需要验证所有数据,验证的一部分是检查给定的许可证密钥是否有效(存在于许可证密钥数据库中) 我的表单位于一个单独的表单类中,如下所示(剥离到重要部分):
您可以为此用例编写自己的自定义约束和验证器类
验证器是一种服务,因此您可以根据需要注入任何其他服务。(即实体管理器)。
这样,表单就不必处理验证逻辑本身 您可以为此用例编写自己的自定义约束和验证器类
验证器是一种服务,因此您可以根据需要注入任何其他服务。(即实体管理器)。
这样,表单就不必处理验证逻辑本身 验证程序是一种服务,这是我丢失的一点信息。非常适合我,谢谢。验证器是一项服务,我遗漏了一点信息。非常适合我,谢谢。
<?php
namespace AppBundle\Form;
use AppBundle\Entity;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Constraint;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
class Activation extends AbstractType
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Entity\Customer::class,
'translation_domain' => 'forms'
]);
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('activationCode', Type\TextType::class, [
'mapped' => false,
'constraints' => [new Constraint\Callback(
function ($object, ExecutionContextInterface $context, $payload) {
}
)]
])
->add('firstName', Type\TextType::class)
->add('lastName', Type\TextType::class)
->add('email', Type\RepeatedType::class, [
'type' => Type\EmailType::class,
'invalid_message' => 'The E-Mail fields must match.',
'first_options' => ['label' => 'E-Mail'],
'second_options' => ['label' => 'Repeat E-Mail'],
])
->add('activate', Type\SubmitType::class);
}
}