laravel에서는 "php artisan config:clear" 문을 사용하여 구성 캐시를 지워 env가 데이터를 얻을 수 없는 문제를 해결할 수 있습니다. 이 문제의 원인은 캐시 구성 파일이 env를 통해 환경 변수를 읽기 때문입니다. 환경 변수를 가져올 수 없으므로 null이 반환됩니다.
이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 5.4, Dell G3 컴퓨터.
해결책:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!