[英]Symfony2 validation and bootstrap/jquery modal
我有以下情況:
我將symfony2-form渲染為模態(使用bootstrap和jQuery)。 當表單無效時,錯誤消息應出現在模式框中。 我像這樣鏈接到模式框:route / to / action#modal
我怎樣才能做到這一點?
在我的模板中,我有一個到模式的簡單鏈接:
<a data-toggle="modal" href="#new">Add member</a>
此鏈接打開一個模式。 里面有一個簡單的表格,標題,名字和姓氏:
{{ form_widget(form.title) }}
{{ form_widget(form.first_name) }}
{{ form_widget(form.last_name) }}
在表單類中,我這樣定義它:
$builder
->add('title', 'text', array('required' => false))
->add('first_name')
->add('last_name');
因此,標題是可選的,名字和姓氏是必需的。 因此,我將這些行添加到了validate.yml中:
Acme\MemberBundle\Entity\Member:
properties:
first_name:
- NotBlank: { message: Please enter a first name }
last_name:
- NotBlank: { message: Please enter a last name }
在我的操作(提交表單時稱為操作)中,我有以下幾行:
/**
* Creates a new Member entity.
*
* @Route("/create", name="acme_member_create")
* @Method("post")
* @Template("AcmeMemberBundle:Member:index.html.twig")
*/
public function createAction()
{
$member = new Member();
$em = $this->getDoctrine()->getEntityManager();
$request = $this->getRequest();
$form = $this->createForm(new MemberType(), $member);
$form->bindRequest($request);
if ($form->isValid()) {
$em->persist($member);
$em->flush();
return $this->redirect($this->generateUrl('acme_member'));
}
$entities = $em->getRepository('AcmeMemberBundle:Member')->findAll();
return array(
'entities' => $entities,
'form' => $form->createView()
);
}
因此,當for無效時,我想返回到我的index.html.twig(顯示模式的位置)。
我找到了解決方案!
使用此JavaScript代碼,我可以在頁面加載時顯示模式:
$(window).load(function(){
$('#new').modal()
});
因此,如果表單無效,我將執行此代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.