Sonata - 默认情况下启用管理员用户

时间:2013-07-09 08:41:06

标签: symfony sonata-admin sonata-user-bundle

我需要做的很简单:

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

我已经扩展了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();
    }
    #...
}

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

2 个答案:

答案 0 :(得分:1)

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

class User extends AbstractedUser implements UserInterface
{
    #...
    protected $enabled;
    #...
    public function __construct()
    {
        $this->enabled = true;
    }
    #...
}

答案 1 :(得分:1)

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

public function __construct()
{
    parent::__construct();
    $this->enabled = true;
}