Próbuję uzyskać klucze API, które zapisałem w moim pliku .env do wykorzystania w javascript blade. Dodałem dwa klucze takie jak:
APP_ENV=local
APP_KEY=////
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
APP_GOOGLE_MAPS=////
APP_OVERHEID_IO=////
W blade muszę użyć Google Maps API i OverheidIO API key. Próbowałem uzyskać jedną z domyślnych zmiennych .env na wypadek, gdyby źle sformatowałem niestandardowe zmienne .env .:
{{ env('APP.ENV') }} // nothing
{{ env('APP_ENV') }} // nothing
{{ env('APP_ENV'), 'test' }} // returns 'test'
Czy ktoś mógłby mi pomóc zadzwonić do Google Maps API i klucza overheidio api w ostrzu?
php artisan config:clear
i przetestowaćenv('APP_ENV')
w majsterkowaniu. U mnie zwracalocal
string.php artisan config:clear
załatwił sprawę.Odpowiedzi:
Pięć najważniejszych poleceń, jeśli Twój Laravel nie działa zgodnie z oczekiwaniami po pewnych modyfikacjach w .env lub folderze bazy danych lub z powodu innych modyfikacji. Oto pełne wyjaśnienie: https://www.youtube.com/watch?v=Q1ynDMC8UGg
źródło
php artisan config:cache
a ja go nie używam. Proszę przeczytaj.php artisan config:cache
odnosisz się do wzmianki o @Learner. ALE, nie jestem pewien, czy odpowiedź ucznia wymaga edycji, aby dodać brakujące polecenie, czy też popełniłeś błąd. Proszę, wyjaśnij to.Mam to zaimplementowane w następujący sposób:
@if (env('APP_ENV')!='Production') Enviroment Test @endif
Zalecam wykonanie następującego polecenia:
composer self-update
źródło
config
zamiast tego@if(App::environment('production'))
BARDZO WAŻNE
Wszystkie env (), takie jak:
env('APP_ENV')
wywołania NIE DZIAŁA w środowisku produkcyjnym (gdy używaszphp artisan config:cache
)Czego używać?
- użyj env () tylko w plikach konfiguracyjnych
- użyj App :: environment () do sprawdzenia środowiska (APP_ENV w .env).
- użyj config ('app.var') dla wszystkich innych zmiennych env, np. config ('app.debug')
- utwórz własne pliki konfiguracyjne dla własnych zmiennych ENV. Przykład: w
Twoim .env:
przykładowa aplikacja config / myconfig.php
return [ 'myvalue' => env('MY_VALUE', 'bar'), // 'bar' is default if MY_VALUE is missing in .env ];
Dostęp w swoim kodzie:
config('myconfig.myvalue') // will result in 'foo'
Więcej szczegółów TUTAJ
źródło
use env() only in config files
. To najlepsza odpowiedź na to pytanie.Jeśli chcesz uzyskać środowisko aplikacji, spróbuj tego:
Nie próbowałem innych zmiennych.
źródło
Powoduje to problemy z użyciem env () gdziekolwiek indziej niż w folderze config /. Użyj env w tym miejscu, a następnie config () w innych częściach aplikacji
źródło
Należy uzyskiwać dostęp do
.env
wartości bezpośrednio w plikach konfiguracyjnych, a następnie uzyskiwać do nich dostęp z dowolnego miejsca (kontrolery, widoki) z plików konfiguracyjnych za pomocąconfig()
pomocnikaNa przykład:
źródło
powinien to naprawić
źródło
Oto link do dokumentacji: https://laravel.com/docs/6.x/configuration#retrieving-environment-configuration
W poniższym przykładzie wypluwam rzeczywisty błąd, gdy jestem w swoim środowisku programistycznym, ale podaję ogólny komunikat, jeśli jestem w jakimkolwiek innym środowisku.
@if(App::environment('development')) Error: {{ $record->s_error }} @else XML Parsing Error - Please double check that your file is formatted correctly. @endif
źródło
pobierz wartości tutaj:
config/app.php
w ostrzu:
{{ config('app.name', 'default value here') }}
w klasie / kontroler:
config('app.name', 'default value here')
źródło
To polecenie powinno zostać napisane po edycji pliku .env, aby uzyskać łatwy dostęp do zmiennych
źródło
miałem również problem z uzyskaniem wartości z pliku .env, a potem zrobiłem to i pomogło:
źródło
Środowisko można uzyskać w następujący sposób:
@if (env('APP_ENV')!='Production') Enviroment Test @endif
patrz odnośnik
źródło
Od Laravel 7.11 możesz używać dyrektyw
@env('')
i@production()
w szablonach blade:@env('staging') // The application is running in "staging"... @endenv @env(['staging', 'production']) // The application is running in "staging" or "production"... @endenv
lub
@production // Production specific content... @endproduction
Zobacz także w dokumentacji Laravel Blade .
źródło