2015-12-11 29 views
0

我已经在命令工具doctrine中创建了一个实体,并带有日期字段。现在,通常它会向您显示一个简单的选择框,并且工作正常。现在我想把它作为日历,日期选择器呈现出来。不幸的是,我无法正确理解,即使在stackoverflow上有很多问题和答案。我受够了Jquery的日期选择器尝试过,但它仍然是一个文本框,我会告诉你我的代码:如何获取日期在Symfony2表单构建器中的Datepicker

ReserverenType.php

<?php 

namespace Codeit\RestaurantBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class ReserverenType extends AbstractType 
{ 
/** 
* @param FormBuilderInterface $builder 
* @param array $options 
*/ 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('naam') 
     ->add('datum', 'date' ,array(
     'widget'=> 'single_text', 
     'format'=>'yyyy/MM/dd', 
     )) 
     ->add('tijd') 
     ->add('personen') 
     ->add('email') 
     ->add('opmerkingen') 
    ; 
} 

/** 
* @param OptionsResolverInterface $resolver 
*/ 
public function setDefaultOptions(OptionsResolverInterface $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => 'Codeit\RestaurantBundle\Entity\Reserveren' 
    )); 
} 

/** 
* @return string 
*/ 
public function getName() 
{ 
    return 'codeit_restaurantbundle_reserveren'; 
} 
} 

base.html.twig

 {% block stylesheets %} 

     {% stylesheets 
     '%kernel.root_dir%/../vendor/twbs/bootstrap/dist/css/bootstrap.css' 
     '%kernel.root_dir%/../vendor/twbs/bootstrap/dist/css/bootstrap-theme.css' 
     '@CodeitRestaurantBundle/Resources/public/css/jquery-ui.min.css' 
     %} 

     <link rel="stylesheet" href="{{ asset_url }}"> 

     {% endstylesheets %} 
    {% endblock %} 
     {% block javascripts %} 

     {% javascripts 

      '%kernel.root_dir%/../vendor/components/jquery/jquery.js' 
      '%kernel.root_dir%/../vendor/twbs/bootstrap/dist/js/bootstrap.js' 
      '@CodeitRestaurantBundle/Resources/public/js/jquery-ui.min.js' 
     %} 

     <script src="{{ asset_url }}"></script> 

     {% endjavascripts %} 
    {% endblock %} 

新.html.twig

{% extends '::base.html.twig' %} 

{% block body -%} 
    <h1>Maak een reservering</h1> 

    {{ form(form) }} 


    <a href='../../restaurant.php'> 
    <div class="terug" style="margin-top: 10px;"> &larr; Terug naar restaurant pagina </div> 
    </a> 


<script type=”text/javascript”> 
    $('.date').datepicker({ 
    showOn: 'button', 
    buttonImageOnly: true, 
    changeMonth: true, 
    changeYear: true, 
    dateFormat: 'dd-mm-yy', 
    yearRange: "-0:+1" 
}); 
</script> 

{% endblock %} 

输出:

output form

回答

0

随着你在最后一个例子使用JavaScript,你需要有这个,而不是以前的数据字段的

$builder->add('datum', 'date' ,array( 'widget'=> 'single_text', 'format'=>'yyyy/MM/dd', 'attr' => ['class' => 'date'], ));

+0

仍然有空白的输入字段。这是否意味着我的jquery不起作用或什么? – Gijsberts

+0

忘了提@benoît – Gijsberts

相关问题