[学習 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を使ったほうが良さげです。
コメント