人気ブログランキング | 話題のタグを見る

CakePHP :validateの内容によって表示するエラーを変えたい

validateした後に、「エラーによって表示させる文言を変えたいなぁ」って思ってますた。
でも、やり方がわからなかったわけで…。

ビューで「$html->tagErrorMsg('Hoge/title', '※タイトルを入力してください!')」みたくすればエラーが表示されるのは、いろんなページや参考書を拝見して、できてはいたのす。
※つが、bakeすれば自動的に入りますからね…。
※参考書:CakePHPガイドブック
※参考書:Fast CakePHP

▼bakeした時にモデルに記述される内容
var $validate = array(
  'title' => VALID_NOT_EMPTY,
);

ただ、上記の例は「タイトルが空の場合」に表示されるエラーであって、例えば「文字数20文字を超えている」場合は別のエラーを表示させたいわけで…。

ソースとにらめっこすること数時間…。
※かなり時間かかりますたね(;´Д`)
モデルに記述した「$this->invalidate('title');」を見てふと思った。
もしかしてモデルの「$this->invalidate('title');」の「title」っていうやつを別にして、ビューで読み込めばいけるんじゃねべか?

以下のようにやってみたところ、うまくいきますた!ヽ(´ー`)ノ
【モデル側】
if($data['Hoge']['title']が20文字を超えているか判別する){
  $this->invalidate('title_hoge');
}

【ビュー側(Smarty使用)】
タイトル
{assign_assoc var='Newstitle' value='size=>60'}
{$html->input('News/title', $Newstitle)}
{$html->tagErrorMsg('News/title', '※タイトルを入力してください!')}
{$html->tagErrorMsg('News/title_hoge', '※タイトルは20文字以内にしてください!')}{*ここを追記*}

試してませぬが、おそらくSmartyを使わない場合もいけると思ふす。
【ビュー側(Smarty未使用)】
<div class="required">
  <?php echo $form->labelTag('Hoge/title', 'タイトル');?>
  <?php echo $html->input('Hoge/title', array('size' => '60'));?>
  <?php echo $html->tagErrorMsg('Hoge/title', '※タイトルを入力してください!');?>
  <?php echo $html->tagErrorMsg('Hoge/title_hoge', '※タイトルは20文字以内にしてください!'); //ここを追記 ?>
</div>
…もしかしてこれって、基本的なことだったりして(;´Д`)
by bubuka_revival | 2008-04-19 10:32 | CakePHP  

BBK
投稿者:BBK
住 所:不定
職 業:不明
※無職ではない
※コメント内に「http://」を禁止。

08/05/11(日)現在
BBK市

※人口増加。
※産業発達。
※交通整備。
※防犯対策。
※環境整備。

08/04/05(土)現在
BBK市


08/01/20(日)現在
BBK市


08/01/11(金)現在
BBK市


08/01/05(土)現在
BBK市


07/12/23(日)現在
BBK市
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
UserAction Extension
SnapCrab
Hawkeye

カテゴリ
日記
gifアニメ
gifアニネタ
見た夢
ubuntu
PHPメモ
PHPイジリ
HTMLメモ
CodeIgniter
Piece Framework
CakePHP
Ethna
xampp
MyMiniCity
チャーシュー
大相撲懸賞クイズ
フリーソフト
ツキン変更
もらい物
メタボリックシンドローム2
メタボリックシンドローム
体重

以前の記事
2011年 05月
2011年 01月
2010年 12月
more...

ライフログ










検索

その他のジャンル

ファン

記事ランキング

ブログジャンル

画像一覧

リンク
.。oO(βΓoG)
ぱんだのおへそⅡ
うたた寝 ろびんのすけの部屋
「geocity」に作ったページに行けます。