ベトナムはハノイに出張中

お元気ですか、紅緒です。ハイカラさんと呼んでください・・
冗談はさておき、日曜からベトナムハノイへ6月初めの水曜まで出張してます。
オフショア開発の会社さんの中でプログラム叩いたり、お互い改修に関する不明点を通訳さん介して仕事したりしてまする。

ちなみにハノイ、この時期は雨期なんですが現在あまり雨も降っておらず。
温度は最高気温40度とか、なかなか殺しに掛かってますが建物の中は割とクーラーが効いてて快適だったり。
そして飯がうまい!以前ホーチミンへ行ったときはちょっとなぁあ・・と思ってましたが、現地の方がよく食べてる所を紹介してもらっていくと、これがうまいのなんの。
空芯菜の炒め物、生春巻、コロッケ的な何か、亀(すっぽんみたいな変な亀 から揚げとかで出てきます)
なかなかに快適です。ビールうまいし。

今回は仕事がメインなので、なかなか写真を撮影する機会はないですが、少しだけでも撮った奴は帰国後にうpしましょう。



さて、ここからはPHPのお話に戻りまして。
新規機能を開発していく中で、とりあえずバリデーションを通す事を第一目標にしていた為に起きた問題です。
共通機能の多い、他の機能よりhogeForm.classの内容をほぼコピーしてきて、当面はイラネ(゚⊿゚)とほぼ全てのバリデーションををコメントアウトしていたのですが
DBに保存したときに、なぜか値が0埋めだったりしてる。。
Save()メソッドの手前で変数をインスペクションしたら、_dataの中はなぜかDoctrine_Null…
なんやねん!もう!!と思ってたら、Validatorをsetしていなかったのが問題でした。

class HogeForm extends BaseHogeForm
{
  public function configure()
  {
    $this->setWidget('hogehoge_name', new sfWidgetFormInputText());
    $this->setWidget('hogehoge_comment', new sfWidgetFormInputText());
    //使う項目の種類とか記述(sfWidgetFormInputText,sfWidgetFormChoiceとか)
    //Baseの項目をオーバーライドする
    
    $this->setValidators(array(
            'hogehoge_name'     => new sfValidatorString(array('max_length' => 30), array(
                'max_length'    => '名前が長すぎるよ小沢さん'
            )),
            //ここでバリデータをセットする。
            'hogehoge_comment'  => new sfValidatorString(array('max_length' => 150, 'required' => false), array(
                'max_length'    => 'コメントが長すぎるよ小沢さん'
            ))
    ));
  }
}
こんな感じ。

くそー、、変なところでハマってしまった。。


  1. コメントはまだありません。

  1. トラックバックはまだありません。