我正在尝试以模式注册新用户,但我无法成功。
在home/index.html.twig我通过 AJAX 显示模式:
<div class="cell large-3 t-white bg-dark offset-2 pt-2">
<a onclick="createNew()"><img class="" src="{{ asset('images/add_button.svg') }}"></a> //triggering ajax function
</div>
<div id="addUser" class="modal t-white"> //div for modal
function createNew() {
$.ajax({
url: "new",
type: "POST",
dataType: 'html',
data: {},
success: function (data) {
$('#addUser').html(data);
},
error: function (error) {
console.log(error);
}
});
$('#addUser').css({display: 'block'});
}
用户控制器.php
/**
* Creates a new User entity.
*
* @Route("/new", name="new")
* @Method({"GET", "POST"})
* @Template()
*/
public function new(Request $request, UserPasswordEncoderInterface $encoder)
{
$user = new User();
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
$em = $this->getDoctrine()->getManager();
if ($form->isSubmitted() && $form->isValid()) {
$user->setPassword($encoder->encodePassword($user, $user->getPassword()));
$user->setRoles(["ROLE_USER"]);
$em->persist($user);
$em->flush();
return $this->redirectToRoute('home', array('id' => $user->getId()));
}
return $this->render('user/new.html.twig',
array('user' => $user,
'form' => $form->createView(),));
}
用户类型.php
class UserType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username')
->add('password');
}
}
如果我尝试在 /home 路由中通过模态创建新用户,但在 /new 路由中(没有模态),一切正常,新用户记录在数据库中。
翻翻过去那场雪
富国沪深