Home | Symfony2Doc

コンテンツ上部に更新日の記載のないページは、翻訳の内容が2.0相当のものになっております。最新の内容は原文のページをご確認ください。

Note

  • 対象バージョン:2.3
  • 翻訳更新日:2014/02/16

currency フィールドタイプ

currency タイプは choice タイプ のサブセットで、 ユーザーは 3-letter ISO 4217 の大量の通貨リストから選択することができます。

choice タイプとは異なり、choices または choice_list オプションを特定する必要はなく、 フィールドタイプとして自動的に大量の通貨リストを使います。それらのオプションのどちらかを手動で設定する ことは 出来ます が、その場合は choice タイプを直接使うべきです。

対応するタグ 様々なタグとして利用可能 (see セレクトタグ、チェックボックス、ラジオボタン)
上書きされた オプション
継承された オプション
親タイプ choice
クラス CurrencyType

上書きされたオプション

choices

デフォルト: Symfony\Component\Intl\Intl::getCurrencyBundle()->getCurrencyNames()

choiscesオプションはデフォルトですべての通貨になります。

継承されたオプション

以下のオプションは choice タイプを継承しています:

multiple

データ型: Boolean デフォルト: false

true の場合、(一つの選択肢だけを選ぶのと対照的に)複数の選択肢が選択可能になります。 expanded オプションの値によって、 true の場合はセレクトタグかチェックボックスで表示されます。 false の場合はセレクトタグかラジオボタンとなります。戻り値は配列となります。

expanded

データ型: Boolean デフォルト: false

もし true の場合、( multiple の値により)ラジオボタンかチェックボックスが表示されます。 false の場合、 select 要素が表示されます。

preferred_choices

データ型: array デフォルト: array()

このオプションが指定されていた場合、すべての選択肢の一部がセレクトメニューの最上部に移動します。以下は “Baz” オプションが最上部に移動し、それと残りの選択肢の間にセパレーターがつきます。:

$builder->add('foo_choices', 'choice', array(
    'choices' => array('foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'),
    'preferred_choices' => array('baz'),
));

ここで注意すべきは好みの選択肢は select 要素で表示されたときにのみ意味を持つことです(すなわち expandedfalse )。この好みの選択肢と通常の選択肢は点線(すなわち ------------------- )によって明示的に分離されます。これは表示する際に編集することが出来ます。:

  • Twig
    {{ form_widget(form.foo_choices, { 'separator': '=====' }) }}
    
  • PHP
    <?php echo $view['form']->widget($form['foo_choices'], array('separator' => '=====')) ?>
    

empty_value

データ型: string or Boolean

New in version 2.3: Symfony 2.3 から、 expanded オプションが true の場合でも空の値がサポートされました。

このオプションは特別な「空の」選択肢(例 “選択肢を選んで下さい” )がセレクトウィジェットの一番上に表示されるかどうかを決定します。このオプションは multiple オプションが false の場合にのみ適用されます。

  • テキストとして”選択肢を選んで下さい”との空の値を追加します。:

    $builder->add('states', 'choice', array(
        'empty_value' => '選択肢を選んで下さい',
    ));
    
  • 「空の」値の選択肢が表示されないことを保証します。:

    $builder->add('states', 'choice', array(
        'empty_value' => false,
    ));
    

empty_value を設定しないままで、 required オプションが false の場合にのみ空の選択肢(テキスト無し)が自動的に追加されます。:

// 空の選択肢(テキスト無し)が追加されます
$builder->add('states', 'choice', array(
    'required' => false,
));

error_bubbling

データ型: Boolean デフォルト: false フォームに限り compound

true の場合、このフィールドのエラーは親フィールドまたはフォームに渡されます。 たとえば、通常のフィールドを true に設定した場合、フィールドに対するエラーは 特定のフィールドではなくメインのフォームに付加されます。

以下のオプションは form タイプを継承しています:

empty_data

データ型: mixed デフォルト: multiple 又は expanded の場合 array() それ以外 ''

このオプションは empty_value の選択肢が選ばれた時に、どのような値を返すかを決定します。

このオプションのデフォルト値はフィールドオプションによって異なります。:

  • data_class が設定され requiredtrue の場合、 new $data_class();
  • data_class が設定され requiredfalse の場合、 null;
  • data_class が設定されず compoundtrue の場合、 array();
  • data_class が設定されず compoundfalse の場合、 null.

しかし、必要に応じてこれを変更することができます。例えば、値が選択されていないとき gender フィールドを明示的に null に設定したいとすると、このようにできます。:

$builder->add('gender', 'choice', array(
    'choices' => array(
        'm' => 'Male',
        'f' => 'Female'
    ),
    'required'    => false,
    'empty_value' => 'Choose your gender',
    'empty_data'  => null
));

Note

フォームクラス全体に empty_data オプションをセットしたい場合はクックブックの記事( /cookbook/form/use_empty_data )を参照してください。

required

データ型: Boolean デフォルト: true

trueの場合は HTML5 の required 属性 がレンダリングされます。 対応する label もまた required クラスをレンダリングします。

これらは表面的でバリデーションからは独立しています。Symfonyに フィールドタイプを推測することを許可する場合は、 このオプションの値はバリデーションの情報から推測されるのが理想的でしょう。

label

データ型: string デフォルト: フィールド名から推測されたものです。

フィールドがレンダリングされる際にラベルが設定されます。false が設定されるとラベルは表示されません。 ラベルはテンプレート内部で設定することもできます。

{{ render_label(form.name, 'Your name') }}

label_attr

データ型: array デフォルト値: array()

フィールドのラベルを表示する際、 <label> 要素に html 属性を設定します。それは HTML 属性をキーとした連想配列です。この属性は直接テンプレートの中に設定することも出来ます。:

  • Twig
    {{ form_label(form.name, 'あなたのお名前', {'label_attr': {'class': 'CUSTOM_LABEL_CLASS'}}) }}
    
  • PHP
    echo $view['form']->label(
        $form['name'],
        'あなたのお名前',
        array('label_attr' => array('class' => 'CUSTOM_LABEL_CLASS'))
    );
    

data

データ型: mixed デフォルト: 対応するオブジェクトのフィールド(一つであれば)

フォームを作成したとき、各フィールドに表示する初期値は、フォームのドメインオブジェクトの対応するプロパティの値です(オブジェクトがフォームにバインドされている場合)。もしフォーム、または、単に個々のフィールドの初期値を上書きしたい場合は、data オプションで設定することが出来ます。:

$builder->add('token', 'hidden', array(
    'data' => 'abcdef',
));

Note

フォームのフィールドのデフォルト値は、直接データ構造(例えば、エンティティまたは配列)から取得されます。 data オプションはこのデフォルト値を上書きします。

read_only

データ型: Boolean デフォルト: false

このオプションが true の場合、そのフィールドは readonly 属性付きでレンダリングされるため、編集する事が出来ません。

disabled

データ型: boolean デフォルト: false

ユーザにフィールドの値を変更させたくない場合は、 disabled オプションを true にします。どんなサブミットされた値も無視されます。

mapped

データ型: boolean

オブジェクトを読み込んでいるまたは書き込んでいる間、フィールドが無視されるようにしたい場合は、 mapped オプションを false にしてください。

blog comments powered by Disqus