>  기사  >  PHP 프레임워크  >  env가 laravel에서 데이터를 얻을 수 없으면 어떻게 해야 합니까?

env가 laravel에서 데이터를 얻을 수 없으면 어떻게 해야 합니까?

WBOY
WBOY원래의
2022-06-02 17:14:524145검색

laravel에서는 "php artisan config:clear" 문을 사용하여 구성 캐시를 지워 env가 데이터를 얻을 수 없는 문제를 해결할 수 있습니다. 이 문제의 원인은 캐시 구성 파일이 env를 통해 환경 변수를 읽기 때문입니다. 환경 변수를 가져올 수 없으므로 null이 반환됩니다.

env가 laravel에서 데이터를 얻을 수 없으면 어떻게 해야 합니까?

이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 5.4, Dell G3 컴퓨터.

laravel의 환경이 데이터를 가져올 수 없는 경우 수행할 작업

해결책:

Clear config 캐시 명령

php artisan config:clear

Cause

Laravel에서 php aritsan config:cache 명령을 실행하면 Laravel은 /config 디렉터리의 모든 구성 파일은 "컴파일"되어 bootstrap/cache/config.php의 캐시 구성 파일에 통합됩니다. 각 구성 파일은 여기에서 읽을 수 있는 env 함수를 통해 환경 변수를 읽을 수 있습니다. 하지만 이 캐시 구성 파일이 있으면 다른 곳에서 env 함수를 사용하여 환경 변수를 읽을 수 없으므로 null이 반환됩니다.

이 코드를 살펴보겠습니다. Illuminate/Foundation/Bootstrap/DetectEnvironment.php line 18:

public function bootstrap(Application $app){
        if(!$app->configurationIsCached()){
            $this->checkForSpecificEnvironmentFile($app);
            try{
                (newDotenv($app->environmentPath(),$app->environmentFile()))->load();
            }catch(InvalidPathException$e){
            }
        }
    }

이 메서드는 프레임워크가 시작된 후에 실행됩니다. 이 코드는 캐시 구성 파일이 있으면 환경 변수가 설정되지 않고 구성이 캐시 구성 파일을 읽지 않음을 보여줍니다.

따라서 app/config 디렉터리의 다른 위치에서 구성 파일을 읽을 때 환경 변수를 읽는 데 env 함수를 사용하지 마세요. 이런 식으로 php artisan config:cache를 실행하면 env 함수가 작동하지 않습니다. 사용할 모든 환경 변수는 app/config 디렉터리의 구성 파일에 있는 env를 통해 읽습니다. 다른 곳에서 환경 변수를 사용하는 경우 env 함수를 사용하는 대신 구성 파일을 균일하게 읽습니다.

【관련 추천: laravel 동영상 튜토리얼

위 내용은 env가 laravel에서 데이터를 얻을 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.