2016-07-29 3 views
0

사용자가 관리 할 수있는 설정이 필요합니다. 이 때문에 데이터베이스에 저장하고 나중에 검색하고 캐싱합니다. 그러나 config/config.php 파일 안에 Cache 외관을 호출하려고하면 오류가 발생합니다. 세부 사항은 아래와 같습니다.캐시 외관이 Laravel 5에서 작동하지 않습니다.

나는 app/config/custom.php에있는 코드를 다음 있습니다 :

후속 오류 밖으로 뱉어
<?php 
// app/config/custom.php 

use Illuminate\Support\Facades\Cache; 

return [ 
    'foo' => Cache::get('foo'); 
]; 

:

Fatal error: Call to a member function get() on a non-object in D:\www\project\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 216

방법이 문제를 해결하는가?

+0

캐시를 사용하도록 설정 했습니까? – ToyRobotic

+0

@ToyRobotic 예, 캐시 드라이버가 '파일'로 설정되어 있습니다. 나는이 문제가 내가 왜 그 문제인지 전혀 알지 못해도 config 파일 내부의 캐시를 사용하려고하기 때문에 발생한다고 생각한다. –

+0

helpers.php 내부에서 착각하지 않으면 facades가 전역 네임 스페이스에있다. 사용을 바꿀 수 있는가? 캐시를 사용하는 문장; – engvrdr

답변

1

설명에서 언급했듯이 설정 파일은 동적 응용 프로그램 값을 저장하는 것이 아니며 동적 인 경우 (즉 사용자 별 값), 응용 프로그램의 다른 부분에서 처리해야합니다.

서비스 제공 업체를 통해 응용 프로그램 전체에서 사용할 수있는 무언가를 만들 수 있습니다.

+0

답변 해 주셔서 감사합니다. 내 생각에, 위의 코드가 작동하지 않는 이유에 대한 대답입니다. 구성 파일에서 Facades를 사용할 수 없다는 점을 고려하여 다른 질문을했습니다. 자세한 질문은 여기를 참조하십시오 : http://stackoverflow.com/questions/38673236/is-it-a-good-ide-to-edit-env-dynamically-in-laravel-5 –

+0

논의한대로, 여기 내 대답은 더 많은 명성을 얻으려는 의도가 아니라 지역 사회 이익을위한 것입니다. 즉, 귀하의 질문에 대한 대답과 왜 오류가 발생하는지, 그리고 다른 애플리케이션 부품에 어떤 가치를 부여하는 방법에 대한 권장 사항이 제시됩니다. 관리자 패널 설정을 저장하는 가장 좋은 방법은 DB를 사용하는 것이며, 메일 서버 설정 설정에 대해 언급 한 경우 메일러 모델에서 해당 값을로드합니다. –

+0

나는 코드베이스에 불필요한 혼동을 가져 오기 때문에 설정 파일이 아닌 다른 곳으로 설정을로드하는 것을 피합니다. –

관련 문제