2006/09/17
CakePHP construct ujis
上記単語で検索して引っ掛かったのであれば幸いだ。
誰のせいと言うわけでもなく、ここ丸2日ほど、CakePHPと言うフレームワークの初期設定に頭を
悩まされていた。
CakePHPを日本語化するにあたってcake/app_model.phpをapp直下にコピーし、
function __construct() {
parent::__construct();
if(!defined('GLOBAL_UJIS')) {
('SET NAMES UJIS');
define('GLOBAL_UJIS', TRUE);
}
}
と記述すればいいとのことでそのようにしていたのだが、Scaffoldで生成したFormのリストを表示する際は
日本語で表示されるものの、各レコードを編集しようとしたらInputの値が全てゼロ、ゼロ、ゼロ。。。
ハックと試行錯誤と頭痛の繰り返しのあげく、やっとのことで解決した。
cake/libs/model/model_php4.phpを編集、function __construct()の頭の方で
if(!defined('GLOBAL_UJIS')) {
('SET NAMES UJIS');
define('GLOBAL_UJIS', TRUE);
}
と記述すれば良い。そうしないと何故かparams関数がNull値を返し、値が無いようになってします。
何故かはわかりかねるがapp_model.phpで__construct()を記述すると親関数をそのまま
上書きしてしまうのだろうか。。。
これが正当か否かは私には何とも言えない。現状これ以外に解決案が無いので私はこのようにする。
by Okamoto