App için olası nedenleri nelerdir :: import () çalışmıyor?

3 Cevap php

this article açıklandığı gibi, CakePHP statik sayfalarını yönetmek için basit bir yol uygulamak çalışıyorum.

Ben bakan değilim sorunu App::import() routes.php dosyasında gerekli sınıfını içe görünmüyor olmasıdır.

Kod şudur:

App::import('Model','StaticPage');
$page = new StaticPage();

$slugs = $page->find('list', array(
        'fields' => array('StaticPage.slug'),
        'order' => 'StaticPage.slug DESC'
));

I'm getting the error: Fatal error: Class 'StaticPage' not found in ...
This class is present in the models folder (models/StaticPage.php).

Ben sadece birkaç hafta önce CakePHP başladı ve ben burada basit bir şey kaçırıyorum sanırım ...

CakePHP 1.3 ve Php 5.2.42 kullanıyorum.

3 Cevap

Dosya adları küçük ve altını: ben CakePHP'nin naming conventions for file names takip etmiyorum çünkü çalışmıyor nedeni olduğunu düşünüyorum. Böylece dosyanızı yeniden adlandırma static_page.php sorunu çözmek gerekir.

Eğer başvuru makalesine bir göz alınmış olması, sizin pasajı uyuşmuyor. Bir StaticPage oluşturmaya çalışırken sonra (ithal edilmesi gerekmez) ClassRegistry sınıfı içe ve konum. Ben hep birlikte AppImport başvuru kaldırma ve kullanmanızı tavsiye ediyorum ClassRegistry:

$page = ClassRegistry::init( 'StaticPage' );

Nesneyi ClassRegistry::init() hem de yükleri modeli ve başlatır, çünkü AppImport hattı gerekmez.

Gördüğüm diğer (potansiyel) sorun modeli dosya adı uylaşımını olmamasıdır. Bu olmalı models/static_page.php. Cake çekim norm sapma işleme olmayabilir.

Hata dediği gibi: Sen Sınıf StaticPage eksik. Eğer bu dosya var emin misiniz? Bunu yaparsanız, doğru yerde olduğundan emin, doğru dosya vardır bu yüzden autoloader bulabilirsiniz?.