月別アーカイブ: 2015年10月

CakePHP 2.X 検索結果のページネーションについて

CakePHPのページネーションで詰まった。
ページネーションでつまづく人は多いようでいろいろなブログで話題になっている。

単純に全件ページングするだけなら簡単にできるのだけれども
検索結果をページングしようと思うと、どうすればいいの?ってなる。

で、下記のサイトに対処方法が的確に書いてあったので紹介する。

セッションに検索条件を保存する処理を入れるとうまく動くようだ。
内部の動作がいまいちよくわかってないけど。

下記サイトのとおりにプログラムを書き直すとあら不思議!
検索結果のページングができた!ちょっとうれしい。

初めての[CakePHP2.x]での開発、そして挫折するまで日記~その25 ページネーションを使ってみる

Cake PHP バリデーションのメッセージが表示されない問題について

Webアプリを作れるようにならんとねということでCakePHPの勉強中。
バリデーションであほみたいなことでちょっと苦戦したのでメモ。

下記のリンク先のチュートリアルに従ってPHPのプログラムを作っている。
CakePHP2.1でバリデーション処理(実践編その5)

だけど、バリデーションでつまづいた。
バリデーションでエラーになった結果、エラー内容を通知するメッセージを表示するんだけど
そのメッセージが表示されない。

バリデーションのエラーメッセージが表示されない問題についてはいろいろなサイトで報告されていて
その対応策も記載されている。

CakePHP2.3からinputタグにhtml5のrequired属性がつくようになった

なんかCakePHPが親切心?でつけたタグ情報にブラウザが反応してブラウザのバリデーションをやってしまうそうで
それが原因でCakePHPのバリデーションが動作しないそうだ。
フレームワークもブラウザも誰かさんがいろいろ考えて作ったものなのでこういう予想外の動作をするみたいで
そこんとこがWebの難しいところ。(本当に難しいことは他にもいろいろあるんだろうけど)

で、この対策をしてもバリデーション処理は動くようになったっぽいがメッセージだけが表示されない事象が発生して
1日悩んでしまう。さすがにバリデーションが成功していてメッセージだけが表示されないという状況で悩んでいる人は
居ないみたいでネットにも情報が無い。

いろいろ悩んだあげく最後にモデルに記載しているメッセージを日本語から英語に変えると・・・
なんとメッセージが表示される!

なんとソースの文字コードがS-JISで保存されていたのが原因で日本語表示に失敗していた模様。
あまりにも初歩的なミス・・・ヘコーッってなってしまったわ。