1

我需要做的很简单:

在用户管理员编辑表单中创建用户时,默认选中启用的复选框。

我已经扩展了 SonataUserAdminBundle 并进行了一些成功的修改。

我试图在扩展的用户实体中启用它

class User extends AbstractedUser implements UserInterface
{
    #...
    protected $enabled = true;
    #...
}

但没有任何改变。

如何在创建时默认启用用户?


我也尝试从用户管理类中检查它

class UserAdmin extends BaseUserAdmin
{
    #...
    protected function configureFormFields(FormMapper $formMapper)
    {
        #...
        $formMapper->with('Security')
            ->add('enabled', null
                , array('required' => false, 'checked' => 'yes'))
            ->end();
    }
    #...
}

但不是一个好主意,因为它总是会被检查。

4

2 回答 2

1

您可以在实体的构造函数中设置它:

class User extends AbstractedUser implements UserInterface
{
    #...
    protected $enabled;
    #...
    public function __construct()
    {
        $this->enabled = true;
    }
    #...
}
于 2013-07-09T13:18:49.527 回答
1

请记住调用父构造函数并在此之后设置您的选项:

public function __construct()
{
    parent::__construct();
    $this->enabled = true;
}
于 2015-05-14T16:03:30.533 回答