2016-08-31 1 views
6

SilverStripe 3.4.1では、管理設定で_config.phpのファイル値を制御したいと考えています。いくつかの変数をに設定したい。>設定>MyTabこれらの変数には_config.phpでアクセスします。_config.php内のSiteConfig変数を取得する

ファイルのSiteConfig変数にアクセスする方法はありますか?

私は、設定データを取得するには、いくつかの異なる方法を使用しようとしました:

  • Config::inst()
    • print_r/var_dumpは、アレイ
  • Config::inst()->get($this->class, 'PropertyName')または$this->config()-> get('PropertyName') としてすべての値を与えます
      私はこれをしたい理由は、私はプラグインを持っている
  • SiteConfig::current_site_config()または前の2
    • 内部サーバーエラー

に基づいて他の同様のバリエーション空0

  • 戻り値いくつかのSilverStripeのデフォルトアクションを置き換えますが、いくつかのデータを挿入する必要があります。このデータが挿入されていない場合は、デフォルトのままにしてください。ここで

    は、私は解決策を見つけることを試みるために通読しているいくつかのリソースです:問題はDB::connectある

  • +0

    を**:[link](https://docs.silverstripe.org/en/3.4/developer_guides/configuration/configuration/)**および** [link](https://docs.silverstripe.org/en/) 3。4/developer_guides/configuration/siteconfig /) – lohe

    答えて

    6

    ではありませんその段階ではで呼ばれた。したがって、データベースからアイテムを取得することはできません。

    SiteConfigを検索する前に、を_config.phpに呼び出してください。

    当社のデータベースのコンフィグ設定が$databaseConfigに格納されていると仮定すると、ここで私たちのSiteConfigをフェッチするコードは次のとおりです。

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

    その後、我々はそうのようなSiteConfig変数取得することができます。より多くの私のために**

    $siteConfig->Title; 
    
    +0

    もう1つ追加する必要があります。それを使用する場合は、DB接続が先に開かれていることを覚えておいてください。DBフィールドの追加/削除(少なくともページを設定すると、試しました)はエラー500になります。回避するには、以前のdb:connectを無効にする必要があります。 – lohe

    関連する問題