読者です 読者をやめる 読者になる 読者になる

Yii2のDateControlをインストールしてみた

Yii2でアプリを作っていて、DatePickerを使わなくてはならなくなったので、インストールしてみました。

 

どうやらkartik\widgets\DatePickerを使用するケースが多いようなので、これを使ってみます。

 

インストール自体は簡単で

php composer.phar require kartik-v/yii2-datecontrol "dev-master"

を実行するだけです。


その後、main.phpにこのモジュールを使用する際の設定を追加します。
私は@app/config/main.phpに以下の記述を追加しました(年月日の書式などを日本向にしています)。

'modules' => [
'datecontrol' => [
'class' => 'kartik\datecontrol\Module',

'displaySettings' => [
Module::FORMAT_DATE => 'yyyy-MM-dd',
Module::FORMAT_TIME => 'HH:mm',
Module::FORMAT_DATETIME => 'yyyy-MM-dd HH:mm',
],


'saveSettings' => [
Module::FORMAT_DATE => 'php:Y-m-d', // saves as unix timestamp
Module::FORMAT_TIME => 'php:H:i',
Module::FORMAT_DATETIME => 'php:Y-m-d H:i',
],


'displayTimezone' => 'Asia/Tokyo',

'saveTimezone' => 'Asia/Tokyo',

'autoWidget' => true,

'autoWidgetSettings' => [
Module::FORMAT_DATE => ['type'=>2, 'pluginOptions'=>['autoclose'=>true]], // example
Module::FORMAT_DATETIME => , // setup if needed
Module::FORMAT_TIME =>
, // setup if needed
],

'widgetSettings' => [
Module::FORMAT_DATE => [
'class' => 'yii\jui\DatePicker', // example
'options' => [
'dateFormat' => 'php:d-M-Y',
'options' => ['class'=>'form-control'],
]
]
]
// other settings
],
],

 これで、viewファイルに

<?= $form->field($model, 'datetime_from')->widget(DateControl::classname(), [
'type'=>DateControl::FORMAT_DATETIME
]); ?>

 

とでも書いてやると、カレンダーで年月日を選択できるテキストボックスが表示されると思います。あ、viewファイルの先頭に

use kartik\datecontrol\DateControl;

を忘れずに!

表示パターンについてはいろいろあるので、以下のURLを参照してください。

Date Control - © Kartik