DateSelectを使ってみたんやけど、DateTimeSelectの存在を知ったのでついでに使ってみた。
でも。。
時、分のセレクトエレメントは出力されるけど、optionが空でセットされてない。。
なぜ。。?
しかもTimeはあるけどTimeSelectは無いんですね。。
2013年9月24日火曜日
2013年9月20日金曜日
ZendFramework2 新しく追加された日付エレメント DateSelect を使ってみた
ZF2で追加された日付エレメント
オプションは以下のように指定。 月の日本語化は /module/Application/language 内の ja_JP.po に追記してmoファイルを作成、上書き。
$this->add(array(
'name' => 'birthday',
'type' => 'DateSelect',
'options' => array(
'create_empty_option' => false,
'max_year' => date(Y) + 1,
'min_year' => '2013',
'year_attributes' => array(
'class' => 'span2',
'value' => date('Y'),
),
'month_attributes' => array(
'class' => 'span1',
'value' => date('m'),
),
'day_attributes' => array(
'class' => 'span1',
'value' => date('d'),
),
'month_values' => array('1' => '11'),
'format' => 'Y-m-d',
),
));
しかし。。
無い。。 これ出力すると 月、日、年 という国際仕様(?)となる。。
指定する方法が見当たらない。。
仕方ないので、 View側でやってみると
formElement($form->get('birthday')); ?>
formElement($form->get('birthday')->getYearElement()); ?>
formElement($form->get('birthday')->getMonthElement()); ?>
formElement($form->get('birthday')->getDayElement()); ?>
だと出るけど
formElement($form->get('birthday')->getYearElement()); ?>
formElement($form->get('birthday')->getMonthElement()); ?>
formElement($form->get('birthday')->getDayElement()); ?>
だと中身が空っぽ。。 使い方間違ったのか対応していないのか。。
今日はここまで。
誰か知ってたら教えてください。。
2013年9月19日木曜日
ZendFramework2 LIKE句の指定が可能になった
以前は対応していなかったLIKE検索がついに対応してくれてる~~。
tableGateway = $tableGateway;
}
public function select()
{
$select = $this->tableGateway->getSql()->select();
$select->where->like('col1', '%foo%');
}
...
でも。。
LIKE用のエスケープが無い。。。。
2時間探しても見つけられない。。。
そんな事は無いだろう。。。 でも無い。。。
そこは自作って事なのか。。
2013年9月12日木曜日
ZendFramework2 Form の isValid でエラーメッセージは無いが false となる現象でハマる。。
まずは下記のような感じで書いてました。
$authは認証機能のmodelです。
$form = new LoginForm();
$form->setInputFilter($auth->getInputFilter());
if ($form->isValid()) {
var_dump('OK');
} else {
var_dump($form->getMessages());
}
症状は $form->isValid() の返り値はずっと false を返して、 $form->getMessages() は空っぽという何故。。 という状態でした。
で、LoginForm ファイルばっかり気にしてたんですが、原因は $auth->getInputFilter() でした。。
途中で消したElementがあったんですが、それが $auth->getInputFilter() の方では残っていましたので、これが原因でしたとさ。。
ZendFramework2 Validateのエラー文言を日本語化
今回はモジュール別ではなく全体で一先ずは日本語化したかったので、Application の onBootstrap で setDefaultTranslator を指定しました。
/module/Application/Module.php
下記は追記分だけを記載しています。上書きという意味では無いです。。 onBootstrap にデフォルト何が記載されていたのかを忘れたので。。class Module
{
public function onBootstrap(MvcEvent $e)
{
$sm = $e->getApplication()->getServiceManager();
\Zend\Validator\AbstractValidator::setDefaultTranslator($sm->get('translator'));
}
}
/module/Application/config/module.config.php
下記は追記分だけを記載しています。上書きという意味では無いです。。 onBootstrap にデフォルト何が記載されていたのかを忘れたので。。return array(
'translator' => array(
'locale' => 'ja_JP',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
),
);
上記を下記のように追記
return array(
'translator' => array(
'locale' => 'ja_JP',
'translation_file_patterns' => array(
array(
'type' => 'gettext',
'base_dir' => __DIR__ . '/../language',
'pattern' => '%s.mo',
),
),
'translation_files' => array(
array(
'type' => 'phpArray',
'filename' => 'resources/languages/ja/Zend_Validate.php',
'locale' => 'ja_JP',
),
),
),
);
もしかして
'resources/languages/ja/Zend_Validate.php' が無い人は恐らくcomposer を利用してセットアップしていないせいかなと思いますので。 無ければ /vendor/zendframework/zendframework/resources を直接参照するかパスが通るようにコピーしたらOKです。
登録:
投稿 (Atom)