学習日記78日目 - Blogapp vol.14 -
どうも、enomotoです。
そろそろ、8月です。8月怖い><
ということで、今日もはまったことを書きます。
相変わらずバリデータではまっています。
Admin Generatorで作ったBackendのブログ編集画面のバリデータが旨く動きませんでした。
表示自体はエラーメッセージが出るモノの
実際にはデータが保存されている…
なぜだろうと思って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に飛ばされる。
で、
- updateUserFromRequestでセットして
- saveUserで保存する
という流れを取っていた。
で、自分がやっていたこと。
- updateUserFromRequest内に保存をするようなコードを書いていた。
そりゃ、バリデーション無視するよなぁ。
問題点
- 未だにバリデーションの理解があやふや。