zerosp.blog > PHP > 2008/05/27 17:48 >

[学習 cakePHP #06] 前回 #05のpostアクションを修正。

前回の学習 cakePHP #05にて空データのポストをしたときのエラー処理を付け加えました。その追加したコードで冗長なことをやってしまっていたのでだけ修正します。

該当箇所はpostアクションのvalidateチェックのif文のところです。

if ($this->Board->validates($this->data)) {
  ~ データのSAVE処理 ~
} else {
  $this->validateErrors($this->Board);
  $this->render();
  exit;
}

続いてpostビューの対応箇所は、

<dd><?php echo $html->textarea("Board/body", array("rows" => "5", "cols" => "50")) ?>
    <?php echo $html->tagErrorMsg("Board/body", "本文を入力してください。") ?></dd>

この部分になります。

今回の問題点は、コントローラーのpostアクションでvalidateチェックを掛けて、なおかつビューでもvalidateチェックしているので冗長になっちゃっていると・・・。なんでこんな風に書いちゃってたか、イマイチ自分でも覚えてません。

ビューの tagErrorMsgのほうを生かして、postアクションのvalidateErrors行を削除で完了となります。

もしくはvalidateErrorsのほうを生かして、同等の処理をするならばpostアクションは、

if ($this->Board->validates($this->data)) {
  ~ データのSAVE処理 ~
} else {
  $this->set("err", $this->validateErrors($this->Board));
  $this->render();
  exit;
}

ビューのほうは、

<dd><?php echo $html->textarea("Board/body", array("rows" => "5", "cols" => "50")) ?>
<?php if ($err["body"] == 1) {
  echo '<div class="error_message">本文を入力してください。</div>';
}
?>
</dd>

と少し長くなっちゃいますね。簡単にいくならビューのtagErrorMsgを使ったほうが良さげです。

投稿日 2008-05-27 17:48

当サイトのコメントとトラックバックの扱いについて。

スパム対策のため認証制となっています。受け取ったコメント、トラックバックは一旦保留扱いとなり管理人が許可したものだけ表示されます。

トラックバック

  • [学習 cakePHP #06] 前回 #05のpostアクションを修正。のトラックバックURL

コメント

コメントフォーム