Symfony 如何处理密码输入?
我正在通过SonataAdminBundle管理用户表Symfony 如何处理密码输入?,symfony,sonata-admin,Symfony,Sonata Admin,我正在通过SonataAdminBundle管理用户表 protected function configureFormFields(FormMapper $formMapper){ $formMapper ->with('General') ->add('username') ->add('email') ->add('plainPassword','text',array('required' =
protected function configureFormFields(FormMapper $formMapper){
$formMapper
->with('General')
->add('username')
->add('email')
->add('plainPassword','text',array('required' => false))
编辑现有用户数据时,我将密码输入留空。
没问题,密码保持不变
但是,我在创建新项目时忘记输入密码。
它显示SQL错误(密码在数据库中具有必需属性)
但是如果我删除了required=>false属性
->add('plainPassword','text')
编辑时需要新的输入
如何更改行为或如何处理密码
作为正常输入输入?创建和更新操作应使用不同的字段类型。在配置表单字段中:
protected function configureFormFields(FormMapper $formMapper)
{
// ...
if ($isCreateAction) {
$formMapper->add('plainPassword','text');
}
else {
$formMapper->add('plainPassword','text', array('required' => false));
}
}
我不知道如何准确地设置
$isCreateAction
,但也许您可以检查Admin::getSubject()
方法?里面有一个获取id的例程。如果没有设置id,那么动作类型是create
谢谢!我使用“$this->getSubject()->getId()”它解决了我的问题。