相关疑难解决方法(0)

symfony2使用表单中的验证组

我有一个属性的实体:

/**
 * @var string $name
 *
 * @Assert\NotBlank(groups={"foobar"})
 * @ORM\Column(name="name", type="string", length=225, nullable=false)
 */
private $name;
Run Code Online (Sandbox Code Playgroud)

表格:

class MyType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('name');
    }

    public function getDefaultOptions(array $options)
    {
        return array(
            'data_class' => '...',
            'validation_group' => array('foobar'),
        );
    }

    public function getName()
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在Controller中我绑定Request并调用$ form-> isValid()

但是如何定义validation_group呢?

forms validation symfony

11
推荐指数
3
解决办法
2万
查看次数

FOSUserBundle使用服务提供商的电子邮件登录,最佳做法

我想创建一个服务提供商,以便使用电子邮件登录,而不是使用FOSUserBundle登录.

首先,我security.yml根据这里的文档在我的文件中写了这个:

security:
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email
Run Code Online (Sandbox Code Playgroud)

根据FOS文档,我逐一遵循这些步骤.

除了在MyUserManager.php我写这个(根据堆栈另一个问题在这里):

namespace Frontend\UserBundle\Model;

use FOS\UserBundle\Entity\UserManager;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;

class CustomUserManager extends UserManager
{
    public function loadUserByUsername($email)
    {
        /*$user = $this->findUserByUsernameOrEmail($username);

        if (!$user) {
            throw new UsernameNotFoundException(sprintf('No user with name "%s" was found.', $username));
        }

        return $user;*/

        //Change it to only email (Default calls loadUserByUsername -> we send it to our own loadUserByEmail)
        return $this->loadUserByEmail($email);
    }

    public function loadUserByEmail($email)
    {
        $user = $this->findUserByEmail($email);

        if …
Run Code Online (Sandbox Code Playgroud)

php forms login symfony fosuserbundle

5
推荐指数
1
解决办法
1321
查看次数

验证fosuserbundle注册表

我正在使用FOSUserBundle.在我的项目中,我创建了自己的UserBundle并覆盖了控制器,表单和处理程序.现在,当用户尝试注册现有电子邮件时,该网站崩溃(电子邮件对于学说是唯一的).似乎没有进行验证.我以为我会在validation.yml中进行一些验证:

YOP\UserBundle\Entity\User:
  constraints:
    - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: email
  properties:
    email:
      - Email: ~
Run Code Online (Sandbox Code Playgroud)

为什么不在电子邮件领域进行验证?如何确保考虑我的验证限制?

PS:validation.yml文件不在我的UserBundle中,是不是有问题?

编辑:

我的UserBundle的代码在这里可用 我不明白为什么不再进行验证...

validation symfony fosuserbundle

1
推荐指数
1
解决办法
5630
查看次数

标签 统计

symfony ×3

forms ×2

fosuserbundle ×2

validation ×2

login ×1

php ×1