Tôi có một thực thể người dùng Doctrine mà tôi đang cố gắng thêm trình xác nhận biểu mẫu vào biểu mẫu đăng ký nhưng họ không kích hoạt biểu mẫu đăng ký trong bất kỳ điều kiện nào.Ràng buộc xác nhận không kích hoạt cho mẫu đăng ký
tượng người dùng của tôi:
namespace JMSHockey\AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\AdvancedUserInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* My\AppBundle\Entity\User
*
* @ORM\Table(name="user")
* @ORM\Entity(repositoryClass="My\AppBundle\Entity\UserRepository")
* @UniqueEntity(fields={"email"}, message="Sorry, this email address is already in use.", groups={"registration"})
* @UniqueEntity(fields={"username"}, message="Sorry, this username is already taken.", groups={"registration"})
*/
class User implements AdvancedUserInterface,\Serializable
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string $email
*
* @ORM\Column(name="email", type="string", length=75, nullable=false)
* @Assert\Email()
* @Assert\NotBlank()
*/
private $email;
/**
* @var string $username
*
* @ORM\Column(name="username", type="string", length=75, nullable=false)
* @Assert\NotBlank()
*/
private $username;
...
}
Dưới đây là hình thức của tôi loại người dùng:
namespace My\AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('email','email');
$builder->add('username','text');
...
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'My\AppBundle\Entity\User',
'validation_groups' => array('registration'),
);
}
public function getName()
{
return 'user';
}
}
Và cuối cùng, hình thức đăng ký:
namespace My\AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('user', new UserType());
}
public function getName()
{
return 'registration';
}
}
Nó có vẻ như tôi phải mất một cái gì đó rõ ràng ở đây, nhưng giữa hướng dẫn sử dụng Symfony và tài nguyên tôi tìm thấy trực tuyến, tôi đã không thể ermine nó là gì.
Có bạn [kích hoạt] (http://symfony.com /doc/current/book/validation.html#configuration) chú thích để xác thực? – meze
Có, tôi có 'validation: {enable_annotations: true}' được đặt trong config.yml của tôi trong phần khung công tác. –
bạn đã cố gắng đặt cụ thể cascade_validation trên RegistrationType chưa? – m0c