2016-08-31 1 views
6

SilverStripe 3.4.1에서 관리자 설정을 통해 _config.php 파일 값을 제어하려고합니다. 관리자에서 몇 가지 변수를 설정하고 싶습니다.>설정>MyTab이 변수는 _config.php에 있습니다._config.php에서 SiteConfig 변수 가져 오기

파일의 SiteConfig 변수에 액세스 할 수 있습니까?

는 내가 구성 데이터를 얻기 위해 여러 가지 방법을 사용하려고 :
  • print_r/var_dump

    • Config::inst() 배열로 모든 값을 제공
  • Config::inst()->get($this->class, 'PropertyName') 또는 $this->config()-> get('PropertyName')
      앞의 두
      • 내부 서버 오류

    내가 이렇게 할 이유는 내가 플러그인이되어 기반으로

  • SiteConfig::current_site_config() 또는 기타 유사한 변화 빈 0
  • 반환 이는 일부 SilverStripe 기본 동작을 대체하지만 일부 데이터를 삽입해야합니다. 이 데이터를 삽입하지 않으면 기본값으로 유지됩니다. 문제는 DB::connect입니다

  • +0

    ** :

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

    그리고 우리는 그렇게 같은 SiteConfig 변수를 검색 할 수 있습니다 used ** : [link] (https://docs.silverstripe.org/en/3.4/developer_guides/configuration/configuration/) ** AND ** [link] (https://docs.silverstripe.org/en/) 삼.4/developer_guides/configuration/siteconfig /) – lohe

    답변

    6

    가되지 않습니다 : 여기에

    내가 해결책을 찾기 위해 시도를 통해 읽고 일부 리소스입니다 그 무대에서 전화했다 _config.php. 따라서 데이터베이스에서 항목을 검색 할 수 없습니다.

    우리가 할 수있는 일은 우리가 SiteConfig을 검색하기 전에 을 _config.php에 전화하는 것입니다. 우리의 데이터베이스 구성 설정을 가정

    $databaseConfig에 저장되며, 여기 인출 할 수있는 코드는 우리의 SiteConfig : 더 내가 들어

    $siteConfig->Title; 
    
    +0

    추가 할 사항이 하나 더 있습니다. 그것을 사용하려면, DB 연결이 더 일찍 열리면, DB 필드 추가/삭제 (최소한 페이지 설정에 대해, 시도 했음)는 오류 500으로 끝납니다.이를 피하려면 이전 db : connect를 비활성화해야합니다. – lohe