CakePHP1.2ガイドブック
毎日コミュニケーションズ 2009-06-27 |
(訂正)この記事でCakePHPのバグかと勘違いしていましたが、自分の設定ミスでした。
詳しくは、次の日の投稿を参照のこと。
CakePHP1.2.3を使ってたのであるが、プラグインを開発していて(といっても、1.1で開発したやつを1.2に移植してるだけ)、さて動かすかという算段でアクセスしてみたら、
Error: Database table enquetes for model Enquete was not found.
と言われた。このエラーメッセージから、アンケートプラグインを作っていたのがわかるw
それはともかく、Enqueteモデルでは、
<?php class Enquete extends EnqueteAppModel { var $name = 'Enquete'; var $useTable = 'enquete'; // テーブル名はenquetesではなく、enqueteなのだ } ?>
なのである。ただ、俺は掲示板プラグインも作っているのだが、掲示板プラグインではそんな事にはなってない。掲示板プラグインとアンケートプラグインの違いは、掲示板はbbsテーブルのみだが、アンケートは、enquete, enquete_answer_list, enquete_resultという3つのテーブルを使っている事だ。hasManyとかで参照しているModelの$useTableを見てないんじゃないだろうか?
googleで検索してみたら、以下を発見。
https://trac.cakephp.org/ticket/4131
チケット出てるやん。でもcloseされてるみたい。でもその後に、再現するからもう一度テストしろっていう書き込みが見られるが、スルーされてるっぽい。1.2 RC1の頃のチケットだからなぁ…。
CakePHP 1.2.5が出てたのでひょっとしたら直ってるかな〜と思ってcakeディレクトリを上書きしてみたけれど、結果は変わらず。直ってないやん。
なんか面倒だったので、テーブルを複数系にして対応してしまった。
でも、enquete_answer_listsって、リストなのに複数形ってオイ!!と自分で突っ込みたくなる。正直気持ち悪い。まあとりあえずってことで。
Pingback: CakePHP:昨日のプラグインのはバグじゃなかった | 自転車で通勤しましょ♪ブログ