Sonata — пользователь-администратор включен по умолчанию

То, что мне нужно сделать, очень просто:

Установите флажок «Включено» по умолчанию во время создания пользователя в форме редактирования администратора пользователя.

Я уже расширил 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();
    }
    #...
}

Но это не очень хорошая идея, потому что она всегда будет проверена.


person Pierre de LESPINAY    schedule 09.07.2013    source источник
comment
Используйте конструктор для установки значений по умолчанию. Источник: stackoverflow.com/questions/14315685/   -  person TautrimasPajarskas    schedule 09.07.2013
comment
Прохладный ! Это то, что я искал. Спасибо   -  person Pierre de LESPINAY    schedule 09.07.2013


Ответы (2)


Вы можете установить его в конструкторе вашего объекта:

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

Не забудьте вызвать родительский конструктор и после этого установить свой параметр:

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