2017-03-09 13 views
0

ZF2アプリケーションでDateSelectを使用するフォーム要素を使用して、ユーザーが生年月日を入力できるようにしました。現在、フィールドはd-m-yの順番で表示されています。この順序を逆にして、y-m-dと表示させたいと思います。私はあなたの注文を変更するためにPHPでロケールを変更することをお勧めしますので、私のオプションではありませんので、投稿に出くわしました。私も試してみましたZend Framework 2の順序を変更するDateドロップダウンを選択する

他のSO質問に受け入れられた回答でしたが、私にとっては内部的なサーバーエラーが発生します。これは可能ではない場合、おそらくヘルパーファイルを使用して私は驚かれるだろうが、私はどのようにロケールを変更し、上記とは別に提案するWeb上で何かを見つけることができません。誰もこれで助けることができますか?

+0

ログファイルにエラーテキストがあります。 – bxN5

+0

「未定義メソッドへの呼び出し」エラーです。 –

答えて

1

setFormat()のメソッドがZend\Form\Element\DateSelectに存在しないため、致命的なエラーが発生します。 自分のビューヘルパーを書かずにこれを達成することは可能だとは思いません。

Zend\Form\Element\DateSelectはロケール設定に基づいているため、ヘルパーにパラメータとしてロケールのショートコードを渡すことができるため、指定された領域の要素の順序が適切になります。

あなたはこのようにそれを使用するように、このビューヘルパーは、3つのパラメータ$this->formDateSelect($element, $intlFormat, $locale)を取ります

echo $this->formDateSelect($form->get('dob'), \IntlDateFormatter::LONG, 'en_Gb');

か...
echo $this->formDateSelect()->setLocale('en_Gb')->render($form->get('dob'));

か...あなたはあなたの中のロケール設定を変更することができますphp.iniファイル

intl.default_locale = en_Gb

+0

私はこのSzymonMをチェックする必要がありますが、それは正しいアプローチであるようです。ありがとうございました –

関連する問題