2016-08-31 11 views
6

SilverStripe 3.4.1 Yönetici ayarları aracılığıyla _config.php dosya değerlerini denetlemek istiyorum. Bazı değişkenleri Admin>Ayarlar>MyTab olarak ayarlamak ve daha sonra bu değişkenlere _config.php'da erişmek istiyorum.SiteConfig değişkenlerini _config.php içinde alın

_config.php dosyasında SiteConfig değişkenlerine erişmenin bir yolu var mı?

I yapılandırma verilerini elde etmek için, birkaç farklı şekilde kullanmak için çalışılmıştır:
  • print_r/var_dump

    • Config::inst() bir dizi olarak tüm değerleri verir
  • Config::inst()->get($this->class, 'PropertyName') veya $this->config()-> get('PropertyName')
      Önceki iki
      • Dahili Sunucu Hatası

    ben bunu yapmak istiyorum nedenim, bir eklenti var olduğu dayanan

  • SiteConfig::current_site_config() veya benzer başka varyasyonları boş 0
  • İade Bu, bazı SilverStripe varsayılan eyleminin yerini alır, ancak bazı verilerin eklenmesini gerektirir. Bu veriler eklenmezse, varsayılan olarak kalmalıdır. Sorun DB::connect olduğunu

  • +0

    **:

    DB::connect($databaseConfig); $siteConfig = SiteConfig::current_site_config(); 

    Sonra şöyle SiteConfig değişkenleri alabilirsiniz **: [link] (https://docs.silverstripe.org/en/3.4/developer_guides/configuration/configuration/) ** VE ** [link] (https://docs.silverstripe.org/en/ 3.4/developer_guides/configuration/siteconfig /) – lohe

    cevap

    6

    değil: İşte

    Bir çözüm bulmaya aracılığıyla okudum bazı kaynaklar şunlardır'de bu aşamada çağrıldı. Bu nedenle, veritabanından öğeleri alamıyoruz.

    SiteConfig ürünümüzü almadan önce DB::connect numaralı telefon numaramızı _config.php numaralı telefondan arayabiliriz. Bizim veritabanı yapılandırma ayarlarını varsayarsak

    $databaseConfig saklanır, burada getirmesi kodudur bizim SiteConfig: Daha fazla I için

    $siteConfig->Title; 
    
    +0

    Eklenecek bir şey daha var. Bunu kullanmak için, daha önce DB bağlantısının açılmasının, DB alanlarının eklenmesi/kaldırılması (en azından sayfa ayarı için denedim) hata 500 ile sonuçlanacağını unutmayın. Bunu önlemek için, önceki db: connect devre dışı bırakılmalıdır. – lohe

    İlgili konular