2013-09-29 60 views
2

生日表單類型呈現以下HTML。公告年份1893-1901,空白。它看起來非常糟糕,我不確定它爲什麼是空白。根據文檔,如果使用時間戳,可能會出現這種情況,但我使用的是默認選項,因此它應該是DateTimeSymfony2生日表單字段有空白年

<div class=" controls" > 
    <select id="study_mainbundle_userprofile_dateOfBirth_month" name="study_mainbundle_userprofile[dateOfBirth][month]" required="required" class="inline input-mini"> 
     <option value="1">Jan</option> 
     <option value="2">Feb</option> 
     <option value="3">Mar</option> 
     <option value="4">Apr</option> 
     <option value="5">May</option> 
     <option value="6">Jun</option> 
     <option value="7">Jul</option> 
     <option value="8">Aug</option> 
     <option value="9">Sep</option> 
     <option value="10">Oct</option> 
     <option value="11">Nov</option> 
     <option value="12">Dec</option> 
    </select> 
    <select id="study_mainbundle_userprofile_dateOfBirth_day" name="study_mainbundle_userprofile[dateOfBirth][day]" required="required" class="inline input-mini"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5">5</option> 
     <option value="6">6</option> 
     <option value="7">7</option> 
     <option value="8">8</option> 
     <option value="9">9</option> 
     <option value="10">10</option> 
     <option value="11">11</option> 
     <option value="12">12</option> 
     <option value="13">13</option> 
     <option value="14">14</option> 
     <option value="15">15</option> 
     <option value="16">16</option> 
     <option value="17">17</option> 
     <option value="18">18</option> 
     <option value="19">19</option> 
     <option value="20">20</option> 
     <option value="21">21</option> 
     <option value="22">22</option> 
     <option value="23">23</option> 
     <option value="24">24</option> 
     <option value="25">25</option> 
     <option value="26">26</option> 
     <option value="27">27</option> 
     <option value="28">28</option> 
     <option value="29">29</option> 
     <option value="30">30</option> 
     <option value="31">31</option> 
    </select> 
    <select id="study_mainbundle_userprofile_dateOfBirth_year" name="study_mainbundle_userprofile[dateOfBirth][year]" required="required" class="inline input-small"> 
     <option value="1893"></option> 
     <option value="1894"></option> 
     <option value="1895"></option> 
     <option value="1896"></option> 
     <option value="1897"></option> 
     <option value="1898"></option> 
     <option value="1899"></option> 
     <option value="1900"></option> 
     <option value="1901"></option> 
     <option value="1902">1902</option> 
     <option value="1903">1903</option> 
     <option value="1904">1904</option> 
     <option value="1905">1905</option> 
     <option value="1906">1906</option> 
     <option value="1907">1907</option> 
     <option value="1908">1908</option> 
     <option value="1909">1909</option> 
     <option value="1910">1910</option> 
     <option value="1911">1911</option> 
     <option value="1912">1912</option> 
     <option value="1913">1913</option> 
     <option value="1914">1914</option> 
     <option value="1915">1915</option> 
     <option value="1916">1916</option> 
     <option value="1917">1917</option> 
     <option value="1918">1918</option> 
     <option value="1919">1919</option> 
     <option value="1920">1920</option> 
     <option value="1921">1921</option> 
     <option value="1922">1922</option> 
     <option value="1923">1923</option> 
     <option value="1924">1924</option> 
     <option value="1925">1925</option> 
     <option value="1926">1926</option> 
     <option value="1927">1927</option> 
     <option value="1928">1928</option> 
     <option value="1929">1929</option> 
     <option value="1930">1930</option> 
     <option value="1931">1931</option> 
     <option value="1932">1932</option> 
     <option value="1933">1933</option> 
     <option value="1934">1934</option> 
     <option value="1935">1935</option> 
     <option value="1936">1936</option> 
     <option value="1937">1937</option> 
     <option value="1938">1938</option> 
     <option value="1939">1939</option> 
     <option value="1940">1940</option> 
     <option value="1941">1941</option> 
     <option value="1942">1942</option> 
     <option value="1943">1943</option> 
     <option value="1944">1944</option> 
     <option value="1945">1945</option> 
     <option value="1946">1946</option> 
     <option value="1947">1947</option> 
     <option value="1948">1948</option> 
     <option value="1949">1949</option> 
     <option value="1950">1950</option> 
     <option value="1951">1951</option> 
     <option value="1952">1952</option> 
     <option value="1953">1953</option> 
     <option value="1954">1954</option> 
     <option value="1955">1955</option> 
     <option value="1956">1956</option> 
     <option value="1957">1957</option> 
     <option value="1958">1958</option> 
     <option value="1959">1959</option> 
     <option value="1960">1960</option> 
     <option value="1961">1961</option> 
     <option value="1962">1962</option> 
     <option value="1963">1963</option> 
     <option value="1964">1964</option> 
     <option value="1965">1965</option> 
     <option value="1966">1966</option> 
     <option value="1967">1967</option> 
     <option value="1968">1968</option> 
     <option value="1969">1969</option> 
     <option value="1970">1970</option> 
     <option value="1971">1971</option> 
     <option value="1972">1972</option> 
     <option value="1973">1973</option> 
     <option value="1974">1974</option> 
     <option value="1975">1975</option> 
     <option value="1976">1976</option> 
     <option value="1977">1977</option> 
     <option value="1978">1978</option> 
     <option value="1979">1979</option> 
     <option value="1980">1980</option> 
     <option value="1981">1981</option> 
     <option value="1982">1982</option> 
     <option value="1983">1983</option> 
     <option value="1984">1984</option> 
     <option value="1985">1985</option> 
     <option value="1986">1986</option> 
     <option value="1987">1987</option> 
     <option value="1988">1988</option> 
     <option value="1989">1989</option> 
     <option value="1990">1990</option> 
     <option value="1991">1991</option> 
     <option value="1992">1992</option> 
     <option value="1993">1993</option> 
     <option value="1994">1994</option> 
     <option value="1995">1995</option> 
     <option value="1996">1996</option> 
     <option value="1997">1997</option> 
     <option value="1998">1998</option> 
     <option value="1999">1999</option> 
     <option value="2000">2000</option> 
     <option value="2001">2001</option> 
     <option value="2002">2002</option> 
     <option value="2003">2003</option> 
     <option value="2004">2004</option> 
     <option value="2005">2005</option> 
     <option value="2006">2006</option> 
     <option value="2007">2007</option> 
     <option value="2008">2008</option> 
     <option value="2009">2009</option> 
     <option value="2010">2010</option> 
     <option value="2011">2011</option> 
     <option value="2012">2012</option> 
     <option value="2013">2013</option> 
    </select> 
</div> 
</div> 

實體部分:

/** 
* @var \DateTime 
* 
* @ORM\Column(name="date_of_birth", type="date") 
* @Assert\NotBlank() 
*/ 
private $dateOfBirth; 

組成部分:

 ->add('dateOfBirth', 'birthday', array(
      'label' => 'Date of Birth' 
     )) 

我使用MopaBootstrapBundle如果有差別。

+1

你有多少112歲的孩子? – 2013-09-29 21:36:28

+0

你研究過他們的文檔嗎? http://symfony.com/doc/current/reference/forms/types/birthday.html和可能的重複:http://stackoverflow.com/questions/11947753/how-to-use-birthday-field-in-symfony2 -forms –

+0

@Dagon,none,但是當表單呈現幾個可以選擇的空白時看起來很糟糕。我寧願不顯示空白選項。我已閱讀文檔。我在文檔中看到的另一件事是我可以設定自己的年數。似乎有點奇怪,但我可能會這樣做。 – Matt

回答

1

設置手動多年來給予同樣的結果:add('dateOfBirth', 'birthday', array( 'label' => 'Date of Birth', 'years' => range(1893, date('Y')), 'mapped' => false ))

1901年之前仍下落不明。我不知道它是來自Symfony2還是PHP限制。

+2

我想到了'add('dateOfBirth','birthday',array('label'=>'Date of Birth','years'=> range(date('Y') - 90,date('Y' ))))'是一個足夠好的解決方法。但是,如果您也複製這個bug,我會看看github問題並報告它。 – Matt

+2

我發現問題:https://github.com/symfony/symfony/issues/5227我有64位Windows與XAMPP。我相信這意味着我正在運行32位PHP,以爲我現在不在家中檢查(爲什麼他們這樣做?誰仍使用32位系統?)。 – Matt