CakePhPでアプリケーションの開発を始めました。チュートリアル以外は使ったことがありません。賢明で「ばかチェック」をするために、私はいくつかのスケルトンコードを実行しましたが、これまでのところ、コードにうまくコピー/パスタされています。しかし:私は障害にぶつかりました。
私は、cakePHPが標準の継承のために指示する命名規則に従いました。正しい実装のように見えるものは、デフォルトにフォールバックしているように見えます。誰かが落とし穴を見たり、何か提案がありますか?
コントローラー->app/ controller / VenuesController.php
表示->app/ View / Venues / view.ctp
モデル->app/ Model / Venue.php
コントローラとビューはうまくリンクしているようで、期待どおりに変数/配列を操作できます。
テストの目的で、モデルでこれを宣言してテストしています。
public static function VenueModelTest() {
return true;
}
そして、私はそれをコントローラーで実行しようとしています:
Venue::VenueModelTest();
私が得るエラーは次のとおりです。
エラー:クラス'Venue'が見つかりません
ファイル:C:[...] \ app \ Controller \ VenuesController.php
行:43
デバッグを試みました。たとえば、コントローラー内からvar_dump($ this-> Model)を実行しました(ビューに渡されました)。これは単にNULLを出力します。そのため、ルーティングに何らかの問題があると思います。
しかし、誰もがその理由を理解できますか?
よろしくお願いします。リック
*編集:モデルがロードされていないことを確認できます。私が含める場合:
$this->loadModel('Venue');
...コントローラーの適切な場所で機能します。
明らかにこれは理想的ではありません...なぜそれが機能しないのか誰かがスパイできますか?乾杯リック
要求に応じて、ここに完全なメインコントローラーがあります:
<?php
// Venue model
// /app/Model/Venue.php
class Venue extends AppModel // implements ModelInterface
{
public static function VenueModelTest() {
return true;
}
}
?>
*編集-金髪のコピー&ペーストの問題のため、静的に追加されました。繰り返しになりますが、これはSTATICオブジェクトであり(したがって、どこからでもアクセスできる必要があります-私は思います!)、呼び出しは次のとおりです。
$venue = Venue::VenueModelTest();
そして、エラーは上記のとおりです。また、モデルの負荷を手動で強制すると、機能します。