Symfony-如何将表单字段小写?
我是使用Symfony 3.4的初学者,我想将表单字段改为小写,但我不知道如何或在何处: 在我的buildForm中,可能有一个约束,或者在我的控制器中,但我不能将表单字段作为目标 我试过在树枝上:Symfony-如何将表单字段小写?,symfony,Symfony,我是使用Symfony 3.4的初学者,我想将表单字段改为小写,但我不知道如何或在何处: 在我的buildForm中,可能有一个约束,或者在我的控制器中,但我不能将表单字段作为目标 我试过在树枝上: <div>{{ form_widget(form.name)|lower }}</div> 我试着用buildForm: $builder->add('name', TextType::class, ['attr' => array( 'class' =&g
<div>{{ form_widget(form.name)|lower }}</div>
我试着用buildForm:
$builder->add('name', TextType::class, ['attr' => array( 'class' => 'text-lowercase' ))
如果您需要查看我的控制器:
public function registerAction(Request $request)
{
/** @var $formFactory FactoryInterface */
$formFactory = $this->get('fos_user.registration.form.factory');
/** @var $userManager UserManagerInterface */
$userManager = $this->get('fos_user.user_manager');
/** @var $dispatcher EventDispatcherInterface */
$dispatcher = $this->get('event_dispatcher');
$user = new User();
$user->setEnabled(true);
$event = new GetResponseUserEvent($user, $request);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
if (null !== $event->getResponse()) {
return $event->getResponse();
}
$form = $formFactory->createForm();
$user->setUsername("null");
$user->setPassword("null");
$user->setPlainPassword("null");
$form->setData($user);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
$user->setPassword(strtolower($form["name"]->getData(). $form["firstname"]->getData()));
$user->setPlainPassword(strtolower($form["name"]->getData(). $form["firstname"]->getData()));
$user->setUsername(strtolower($form["name"]->getData().
$form["firstname"]->getData()));
if($form["roles"]->getData() == 'ROLE_ADMIN')
{
$user->addRole('ROLE_ADMIN');
}
else
{
$user->addRole('ROLE_USER');
}
$event = new FormEvent($form, $request);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
$userManager->updateUser($user);
/*****************************************************
* Add new functionality (e.g. log the registration) *
*****************************************************/
$this->container->get('logger')->info(
sprintf("New user registration: %s", $user)
);
if (null === $response = $event->getResponse()) {
$url = $this->generateUrl('fos_user_registration_register');
$response = new RedirectResponse($url);
}
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
return $response;
}
$event = new FormEvent($form, $request);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_FAILURE, $event);
if (null !== $response = $event->getResponse()) {
return $response;
}
}
return $this->render('@FOSUser/Registration/register.html.twig', array(
'form' => $form->createView(),
));
}
谢谢你的帮助 如果您使用的是引导,则应使用以下代码:
$builder->add('name', TextType::class, ['attr' => array( 'class' => 'text-lowercase' ))
请发布一些到目前为止您已经尝试过的代码。您希望将字段的名称或其中的值小写多少?您是将表单与实体一起使用还是与数组一起使用?您可以发布完整的控制器操作吗?我想将字段的值小写,并且我使用实体用户的表单,因为我使用FosUser的registerController将用户保存在数据库中。我用我的RegisterController更新它只在视图中工作,而不在控制器和数据库中工作,但是,当您提交此类数据时。它将以您插入的小写字母表示。您可以在您的实体中执行此操作。公共函数setNamestring$name:self{$this->name=strtolower$name;返回$this;}当然!在setName中使用'strtolower$name'可以工作!谢谢!!
$builder->add('name', TextType::class, ['attr' => array( 'class' => 'text-lowercase' ))