Neden 'Albüm' adında bir Doktrin modeli oluşturamazsınız

2 Cevap php

Ben projemde ORM olarak Doctrine kullanıyorum ama garip bir hata karşı koştu ediyorum:

Aşağıdaki YAML kullanılması:

Album:
  tableName: dpp_album
  actAs: [Timestampable]
  columns:
    name: string(255)
    description: string(255)
    online: boolean

Sonra benim modeller üretmek ama benim sayfayı yenileyerek ve modelleri hakklı üzerine, PHP bu hatayı vermektedir:

Fatal error: Class 'BaseAlbum' not found in E:\sites\dpp\system\application\models\Album.php on line 13

Gariptir ki bütün diğer modelleri sadece ince ve Temel Sınıflar durumlarda bulunur.

'Set' gibi bir şey için adını 'Albüm' değiştirirken sadece çalışır! Bu garip değil mi?!

Hata mesajı başka bir şey söylemesine rağmen Yani, 'Albüm' kullanarak bir şekilde çatışmaları görünüyor. Çoğul Albümlerine değişim de başka bir şey sadece iyi, çalışmıyor!

Herhangi bir öneriniz?

Teşekkürler!

2 Cevap

Seçeneği generateBaseClasses ayarlanırsa (varsayılan) generateModelsFromYaml () sizin durumunuzda bir sınıf AlbumBase (alt dizininde varsayılan generated) ve boş bir sınıf yaratacak Album extends AlbumBase. Yani Album örneği ise AlbumBase zaten bazı autoloader tarafından bilinen veya yüklenmiş olmalıdır.

Sorun modeli sınıfların otomatik yüklenmesi sırayla yer almaktadır.

Oluşturulan 'Base' modelleri 'modelleri / üretilen' dizini ve yukarıdaki dizinde diğer olanlardan altında yaşıyor.

Yükleme sırası emin olamaz, bu yüzden bazen bir modeli uzandığı üzerine Baz model daha önce yüklenmiş olur ve böylece bu hatayı atma.

Benim önyükleme dosyasında, ben artık açıkça şu şekilde dizin yükleme sırasını dahil ettik:

Doctrine::loadModels(array(APPPATH.'/models/generated', APPPATH.'/models'));

Dokümantasyon oluşturulan dosyaları sonuçlanan örnekler çok kullanır ama önyükleme yapılandırmaları hakkında konuşurken bu davranışı söz etmez.

Neyse, mutlu bu şimdi sabittir! :-)