PostgreSQLでまともに動かない。更新頻度が高くない(気がする)。
たくさんのファイルを作んなくちゃいけなくてめんどっちい。
等々適当な理由をつけて放置していたCakePHPですが、新しく入社した人が
Cake最高!Cake最高!何でCakeじゃないんですか!って言ってくるのでしょうがないなぁ。
とか思いながら再び試して見たところ、1時間弱でこんなのできました。
# controller
<?php
class MoniesController extends AppController {
var $scaffold;
}
?>
# model
<?php
class Money extends AppModel {
var $name = 'Money';
var $belongsTo = array('Genre' =>
array( 'className' => 'Genre',
'dependent' => true,
'foreignKey' => 'genre_id'
)
);
}
?>
とやると、DBマスターメンテ画面完成なのはちょっぴり感動的ではある。外部キー参照とかも簡単なコードを書くだけで楽チンなのは確か。
で、やっぱりPostgreSQLだといまいち。前に比べて解決されてきているので期待は持てるものの、メインでPostgreSQLを使っている人が少ないことがわかるような不具合が発生するのだ。
マスターメンテ画面で、新規データ追加を行おうとすると「Notice: Undefined index: name in /path/to/cake/libs/model/dbo/dbo_postgres.php on line 350」というエラーが発生。
348 function lastInsertId($source, $field = 'id') {
349 foreach ($this->__descriptions[$source] as $sourceinfo) {
350 strcasecmp($sourceinfo['name'], $field);
351 if (strcasecmp($sourceinfo['name'], $field) == 0) {
352 break;
353 }
354 }
コードを見ると、strcasecmp するところでnameなんてキーがないから、そんなインデックスないよNoticeとなってる。
開発者、NoticeをOFFにしてるなぁ。と思ったり。
348 function lastInsertId($source, $field = 'id') {
349 foreach ($this->__descriptions[$source] as $sourceinfo) {
350 if (!array_key_exists('name', $sourceinfo)) {
351 break;
352 }
353 if (strcasecmp($sourceinfo['name'], $field) == 0) {
354 break;
355 }
356 }
ひとまずこんな風にコードを追加して、問題はなさそうだけど、そもそもどういう処理なのかがわからないので正しい修正なのか良くわからん。全部追っかける気にならんー。バグレポートだそうかしら?2チケットほどこの件に関するバグレポートが出てるんだけど、「needmoreinfo」でCLOSEされてる・・・。
まぁ、この2つのチケットは確かにいけてないレポートではある。(w
しばらくCakeに時間とってもいいかなぁとはおもったので、影でこそこそやってみます。
Popular Posts:
- None Found
CakePHPはNotDRYと配列指向が売りです。
https://trac.cakephp.org/ch…
cockok>
ちょっとまて。今気がついた。
NotDRYってだめじゃん。