CakePHP:pluginのModelで$useTableが効かないバグ?

CakePHP1.2ガイドブック CakePHP1.2ガイドブック

毎日コミュニケーションズ 2009-06-27
売り上げランキング : 51427
おすすめ平均

Amazonで詳しく見る by G-Tools

(訂正)この記事で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って、リストなのに複数形ってオイ!!と自分で突っ込みたくなる。正直気持ち悪い。まあとりあえずってことで。


タグ CakePHP, cakephp-plugin | パーマリンク.

コメント・トラックバック一覧

  1. Pingback: CakePHP:昨日のプラグインのはバグじゃなかった | 自転車で通勤しましょ♪ブログ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です