我使用的是SonataUser的FOSUser & SonataAdmin。 另外我使用SonataEasyExtends創建應用程序/應用程序/奏鳴曲/用戶捆綁,在幾個教程中告訴您在Sonata中使用FOS。SonataUser - 從管理員表格中刪除字段
我只是想從用戶實體的管理員窗體中刪除幾個默認字段,比如社交用戶實例(Facebook,Twitter,...)。
我試圖把
#app/Application/Sonata/UserBundle/Admin/Model/UserAdmin.php
namespace Application\Sonata\UserBundle\Admin\Model;
use Sonata\UserBundle\Admin\Model\UserAdmin as UserAdmin;
class MyUserAdmin extends UserAdmin
{
/**
* {@inheritdoc}
*/
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('General')
->add('username')
->add('email')
->add('plainPassword', 'text', array('required' => false))
->end()
->with('Groups')
->add('groups', 'sonata_type_model', array('required' => false))
->end()
;
if (!$this->getSubject()->hasRole('ROLE_SUPER_ADMIN')) {
$formMapper->with('Management')
->add('roles', 'sonata_security_roles', array(
'expanded' => true,
'multiple' => true,
'required' => false
))
->add('locked', null, array('required' => false))
->add('expired', null, array('required' => false))
->add('enabled', null, array('required' => false))
->add('credentialsExpired', null, array('required' => false))
->end();
}
$formMapper
->with('Security')
->add('token', null, array('required' => false))
->add('twoStepVerificationCode', null, array('required' => false))
->end();
}
}
我想我已經把它註冊爲服務,並告訴索納塔在默認情況下用它來替代形式。
但我不知道該怎麼做。
我至少在正確的軌道上?
我提出了這種改進:https://github.com/sonata-project/SonataAdminBundle/issues/2294 – webDEVILopers 2014-08-13 09:20:37
只需在代碼的第一部分編輯縮進,以防某人想要複製/粘貼代碼:sonata_user和管理員不在相同的縮進級別 – 2015-12-01 14:45:55