1

私はCakePHPを勉強しているだけなので、明らかな間違いをお詫びします。モデルクラスを作成し、デフォルトのテーブル名を変更しました。

class Weathers extends AppModel {    
    public $tablePrefix = 'weather_';
    public $useTable = 'forecasts';

    function saveCountries($countries){
         ...
    }
}

そして私のコントローラー機能

if (!$this->loadModel('Weather'))
   exit;
$Weather = $this->Weather;
$Weather->saveCountries($countries);

$ Weather-> saveCountries($countries)でエラーが発生します;

エラー:モデルWeatherのテーブル天気がデータソースのデフォルトで見つかりませんでした。

私が間違っていることを見つけるのを手伝ってください。

4

2 に答える 2

1

定義したModelクラスはではありWeathersませんWeatherWeatherしたがって、代わりにクラス名を変更するだけでWeathers、これが実行されます。

于 2012-08-10T02:10:45.383 に答える
1

Modelクラスの宣言に注意してください。

あなたはそれを呼んだWeathers

これで問題ありません。ただし、モデルをロードしようとしているときWeather(この場合は複数形がないわけではありません)、CakePHPはWeathers(複数形の)クラスを使用する代わりに、動的にモデルを構築しています。

CakePHPの標準は、モデルに単一の名前を使用することです。Weatherこの問題を回避するには、モデルクラスの名前を変更することをお勧めします。この変更を行うと、モデルをロードするためのコードが意図したとおりに機能します。

于 2012-08-10T10:22:07.097 に答える