2013-07-23 11 views
7

symfony2で再利用可能なdatetime pickerを作成しようとしています。 3つの独立した入力パラメータで構成されます。私は完全な情報で質問を更新し、他の人が私の所見を使用できるようにします。symfony2 - datetime picker - フォームタイプを1つにまとめる

{テキスト入力} {時間を選択} {時間を選択}

質問は、私は1つに3つの入力を組み合わせたカスタム再利用可能なフォームを作成するにはどうすればよいです。

私はあなたがDateTimeフィールドに見ることができる例として

enter image description here

symfonyのドキュメント
http://symfony.com/doc/current/cookbook/form/create_custom_field_type.html#creating-a-template-for-the-field

答えて

13

jquery.datetime pickerを使用して、日付/時刻ピッカーを表示することも、その1つ(日付または時刻)を表示することもできます。

私は最近自分のウェブサイトの1つで作成しました。

$builder->add('dateheure', 'datetime', array('date_widget' => "single_text", 'time_widget' => "single_text")); 

とコールjqueryの、ページ上の日時CSSやJS:

<link rel="stylesheet" type="text/css" href="jquery.datetimepicker.css"/ > 
<script src="jquery.js"></script> 
<script src="jquery.datetimepicker.js"></script> 

とあなたのフィールド上のアクティブのDateTimePicker:私はイム見出しを考えるフィードバックのための

$(function(){ 
    $("#form_dateheure input").each(function(){ 
     $(this).attr("readonly","readonly"); 
    }); 
    $('#form_dateheure_date').datetimepicker({ 
     format: "Y-m-d", 
     timepicker: false, 
     datepicker: true, 
    }); 
    $('#form_dateheure_time').datetimepicker({ 
     format: "H:i", 
     timepicker: true, 
     datepicker: false, 
     step:5 
    }); 
}); 
1

をachiveしようとして何イムのアイデアを与えるためにスクリーンショットを添付しています。 source codeを確認してください。

大まかに言えば、まずCustom Form Typeを作成します。これは、フォームに追加できるときに作成します。例として

class DateTimeType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('date', 'text'); 
     $builder->add('hour', 'choice', array(...)); 
     $builder->add('minute', 'choice', array(...)); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
    } 

    public function getParent() 
    { 
     return 'form'; 
    } 

    public function getName() 
    { 
     return 'date_time'; 
    } 
} 

第二には、1つのDateTimeオブジェクトに3分野から、あなたのHTMLデータを変換するであろう、それにData Transformerを追加します。

+0

感謝右方向。どのようにフォームに型を実装するのですか?私はそれを試して、型 "オブジェクト、配列または空"、 "文字列"の期待された引数を取得します。 –

+0

あなたのエンティティフィールド 'custquote_pickup'タイプは何ですか? –

関連する問題