Home | Symfony2Doc »リファレンスドキュメント »Form Type リファレンス »percent フィールドタイプ

ご注意

Symfony2日本語翻訳ドキュメントは内容が古くなっております。公式サイトの英語ドキュメントを参照してください。

Note

  • 対象バージョン:2.4 (2.0以降)
  • 翻訳更新日:2013/12/22

percent フィールドタイプ

“パーセント”タイプはテキストフィールドを表示し、パーセンテージのデータを取り扱うことに特化しています。パーセンテージのデータが少数として保存される場合(例 0.95 )、このフィールドをすぐに使うことが出来ます。データを数値(例 95 )として保持する場合、 type オプションに integer を指定すべきです。

このフィールドはパーセンテージ記号 “%” をインプットボックスの後に追加します。

対応するタグ input text フィールド
オプション
継承された オプション
親タイプ form
クラス PercentType

オプション

type

データ型: string デフォルト: fractional

このオプションはデータがオブジェクトにどのように保存されているかを指定します。たとえば、パーセンテージが “55%” に対してデータは 0.55 または 55 のようにオブジェクトに保存されているでしょう。2種類の “type” でそれらの2つのケースを取り扱います。:

  • fractional ( 0.55 のような)少数としてデータが保存されている場合、このタイプを利用します。データがユーザーに( 55 のように)表示される前に 100 を掛けられます。フォームから送信されたデータは 100 で割られ少数( 0.55 )として保存されます。
  • integer データが整数(例 55 )として保存される場合、このオプションを使用してください。そのままの値 ( 55 )が表示され、オブジェクトに保存されます。整数でのみ機能しますので注意してください。

precision

データ型: integer デフォルト: 0

デフォルトでは、入力された数値は端数処理されます。少数点以下の桁数を増やす場合このオプションを使用します。

継承されたオプション

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

required

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

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

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

label

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

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

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

read_only

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

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

disabled

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

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

error_bubbling

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

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

error_mapping

データ型: array デフォルト: empty

このオプションはバリデーションエラーの対象を編集することができます。

matchingCityAndZipCode という名前のメソッドを持っているとして、それが city および zip code が一致するかの検証をするとします。しかし残念なことに、 “matchingCityAndZipCode” フィールドがフォームに無いため、 Symfony ができるのはフォームの上部にエラーを表示することです。

カスタマイズされたエラーマッピングを使うと、city フィールドの上にエラーを表示するように、より上手にエラーをマップできます。:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'error_mapping' => array(
            'matchingCityAndZipCode' => 'city',
        ),
    ));
}

こちらが左側、右側のマッピングするルールです:

  • 左側はプロパティパスを有します。
  • クラスのプロパティまたはメソッドで違反が生成された場合、そのパスは単に “propertyName” です。
  • array または ArrayAccess オブジェクトで違反が生成された場合、プロパティパスは [indexName] です。
  • ドットでプロパティを分離し、それらを連結して、ネストされたプロパティパスを作成することができます。たとえば addresses[work].matchingCityAndZipCode のように。
  • 左側のエラーマッピングは単一のドット . も認められます。それはフィールド自体をさしています。フィールドに追加されたエラーはネストされたフィールドの代わりに付与されたことを意味します。
  • 右側は単にフォームのフィールド名を有します。

invalid_message

データ型: string デフォルト: This value is not valid

フィールドに入力されたデータが意味を成さない(すなわち、バリデーション失敗の)場合に使われるバリデーションエラーのメッセージです。

たとえば、時間に変換される time フィールドに無意味な文字を入れたときに、または、 number フィールドに文字列(例、 apple )を入れたときにおきます。

通常の(最小の文字数をセットするような)(ビジネスロジック)バリデーションはバリデーションメッセージをバリデーションルール( reference )とあわせて設定すべきです。

invalid_message_parameters

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

invalid_message オプションをセットする場合、文字列にいくつかの変数を取り込む必要があるかもしれません。プレースホルダーをそのオプションに加え、変数をこのオプションに含めることで可能です:

$builder->add('some_field', 'some_type', array(
    // ...
    'invalid_message'            => 'You entered an invalid value - it should include %num% letters',
    'invalid_message_parameters' => array('%num%' => 6),
));

mapped

データ型: boolean

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

blog comments powered by Disqus