블레이드에서 Laravel .env 변수에 액세스


89

블레이드 자바 스크립트에서 사용하기 위해 .env 파일에 저장 한 API 키를 얻으려고합니다. 다음과 같은 두 가지 키를 추가했습니다.

APP_ENV=local
APP_KEY=////
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
APP_GOOGLE_MAPS=////
APP_OVERHEID_IO=////

블레이드에서는 Google Maps API 및 OverheidIO API 키를 사용해야합니다. 사용자 지정 .env 변수의 형식을 잘못 지정한 경우를 대비하여 기본 .env 변수 중 하나를 가져 오려고했습니다. :

{{ env('APP.ENV') }} // nothing
{{ env('APP_ENV') }} // nothing
{{ env('APP_ENV'), 'test' }} // returns 'test' 

누군가가 블레이드에서 Google지도 API 및 Overheidio API 키를 호출하도록 도와 줄 수 있습니까?


12
땜장이 로 실행 php artisan config:clear하고 테스트 하십시오 env('APP_ENV'). 나를 위해 그것은 local문자열 을 반환 합니다.
Alexey Mezenin

Alexey 감사합니다! php artisan config:clear트릭을했다.
안나 Jeanine

@Alexey Mezenin, 답변으로 댓글을 게시해도 괜찮지 않습니까?. 나는 SO를 사용하는 데 꽤 익숙하고 규칙에 대해 명확하지 않습니다.
manian


@YevgeniyAfanasyev 그 질문이 내 중복, 나는 ... 전에 그것을 질문
안나 Jeanine에게

답변:


111

.env 또는 데이터베이스 폴더의 일부 수정 후 또는 기타 수정으로 인해 Laravel이 예상대로 작동하지 않는 경우 가장 중요한 5 가지 명령입니다. 자세한 설명은 다음과 같습니다. https://www.youtube.com/watch?v=Q1ynDMC8UGg

php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear

1
정확히 이유 때때로, Laravel 5.5 하드 캐싱 시스템을 가지고
Deepesh 타파

2
좋은 물건이지만주의하세요. env ( 'APP_ENV')는 프로덕션에서 실패합니다. stackoverflow.com/a/57626957/4820095
ndberg

1
@ndberg는 명령을 사용 php artisan config:cache하고 나는 그 명령을 사용 하지 않을 때 입니다. 읽어주세요.
학습자

안녕하세요 @ndberg 저는이 질문에 대한 귀하의 답변을 두 번 검토했으며 (위의 의견에있는 링크) php artisan config:cache@Learner가 언급 한대로 참조 합니다. 그러나 누락 된 명령을 추가하기 위해 학습자의 답변을 편집해야하는지 또는 실수를했는지 확실하지 않습니다. 제발 명확히 해주세요.
Guillermo Garcia

@Learner가 옳습니다. 그는 대답에 사용하지 않으며 필요하지 않습니다. 하지만 저는 모든 Google 직원에 대해 간략히 설명하고 싶었습니다. 일반적으로 프로덕션에서는 config : cache를 사용하고 결국 "env ( 'APP.ENV')"질문에 사용 된 호출에 문제가 발생합니다. 그래서 이것은이 답변에 추가되었습니다.
ndberg

32

다음과 같은 방식으로 구현했습니다.

@if (env('APP_ENV')!='Production')
Enviroment Test
@endif

내 권장 사항은 다음 명령을 실행하는 것입니다. composer self-update


2
구성 캐싱이 활성화 된 경우 실패합니다. 사용 config대신에
ncatnow

2
다음과 같이 쓸 수 있습니다.@if(App::environment('production'))
Marvin Rabe

Laravel 7.1 이상부터 @env ([ 'development', 'local', 'etc']) .... @endenv
James

20

매우 중요

다음과 같은 모든 env () : 프로덕션에서 WO N'T WORKenv('APP_ENV')호출 합니다 (사용시 ).php artisan config:cache

무엇을 사용합니까?
-설정 파일에서만 env ()
사용-환경 확인을 위해 App :: environment () 사용 (.env의 APP_ENV).
-다른 모든 환경 변수에는 config ( 'app.var')를 사용하십시오. config ( 'app.debug')
-자신의 ENV 변수에 대한 자체 구성 파일을 만듭니다. 예 :
.env에서 :

MY_VALUE=foo

예제 구성 app / myconfig.php

return [
    'myvalue' => env('MY_VALUE', 'bar'), // 'bar' is default if MY_VALUE is missing in .env
];

코드에서 액세스 :

config('myconfig.myvalue') // will result in 'foo'

자세한 내용은 여기를 참조하십시오.


1
@ndberg가 여기에서 말하는 것은 핵심 use env() only in config files입니다. 이것이이 질문에 대한 최선의 대답입니다.
Pathros 2010 년

8

앱의 환경을 얻으려면 다음을 시도하십시오.

{{App::environment()}}

다른 변수를 시도하지 않았습니다.


4

config / 폴더가 아닌 다른 곳에서 env ()를 사용하면 문제가 발생합니다. 거기에서 env를 사용한 다음 앱의 다른 부분에서 config ()를 사용하십시오.



4

.env구성 파일 내에서 직접 값에 액세스 한 다음 config()도우미

를 사용하여 구성 파일의 모든 위치 (컨트롤러, 뷰)에서 액세스해야합니다 . 예를 들면 다음과 같습니다.

.env

TEST_URL=http://test

config / app.php

return [
   'test_url' => env('TEST_URL','http://default.url')
];

resources / views / welcome.blade.php

{{ config('app.test_url')}}

자세한 내용 은 laravel 문서의 구성 캐싱 을 참조하십시오 .


4

Laravel 7.11 이후 로 블레이드 템플릿에서 @env('')@production()지시문을 사용할 수 있습니다 .

@env('staging')
    // The application is running in "staging"...
@endenv

@env(['staging', 'production'])
    // The application is running in "staging" or "production"...
@endenv

또는

@production
    // Production specific content...
@endproduction

Laravel Blade 문서를 참조하십시오 .



2

여기 config/app.php


에서 값을 얻으십시오 .

{{ config('app.name', 'default value here') }}

클래스 / 컨트롤러에서 :

config('app.name', 'default value here')

1

다음과 같은 방법으로 env를 검증 할 수 있습니다.

@if (env('APP_ENV')!='Production')
Enviroment Test
@endif

참조 링크


0

쉬운 방법으로 변수에 액세스하려면 .env 파일을 편집 한 후이 명령을 작성해야합니다.

php artisan config:cache

0

나는 또한 .env 파일에서 가치를 얻는 데 어려움을 겪고 있었는데, 나는 이것을했고 도움이되었습니다.

  1. env 파일을 확인하고 올바른 값을 제공했는지 확인하십시오.
  2. 그런 다음 .env 파일에서 해당 변수를 사용하는 블레이드 또는 컨트롤러를 확인하십시오.
  3. 위의 두 단계가 모두 올바른 경우 다음 단계를 수행하면됩니다.

php artisan config : clear
php artisan cache : clear
php artisan view : clear
php artisan route : clear
composer dump-autoload

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.