Hatena::ブログ(Diary)

crazyuplog このページをアンテナに追加 RSSフィード

2009-07-30

学習日記78日目 - Blogapp vol.14 -

スタートアップ研修記はこちらです。

どうも、enomotoです。

そろそろ、8月です。8月怖い><

ということで、今日もはまったことを書きます。

相変わらずバリデータではまっています。

Admin Generatorで作ったBackendのブログ編集画面のバリデータが旨く動きませんでした。

f:id:crazyup:20090730185500p:image

表示自体はエラーメッセージが出るモノの

実際にはデータが保存されている…

なぜだろうと思ってAdmin Generatorが自動的に生成するautoArticleアクションを読んでやっと原因が分かりました。

autoArticleはこうなっていた。

  public function executeCreate()
  {
    return $this->forward('user', 'edit');
  }

  public function executeSave()
  {
    return $this->forward('user', 'edit');
  }

  public function executeEdit()
  {
    $this->user = $this->getUserOrCreate();

    if ($this->getRequest()->getMethod() == sfRequest::POST)
    {
      $this->updateUserFromRequest();

      $this->saveUser($this->user);

      $this->setFlash('notice', 'Your modifications have been saved');
(省略)

流れを読むとCreateもSaveもEditに飛ばされる。

で、

  1. updateUserFromRequestでセットして
  2. saveUserで保存する

という流れを取っていた。

で、自分がやっていたこと。

  • updateUserFromRequest内に保存をするようなコードを書いていた。

そりゃ、バリデーション無視するよなぁ。

問題点

  • 未だにバリデーションの理解があやふや。
Copyright © crazyup. All rights reserved.