Toegang tot Laravel .env-variabelen in blade

Ik probeer een aantal API-sleutels te krijgen die ik in mijn .env-bestand heb opgeslagen om in het blade-javascript te gebruiken. Ik heb twee sleutels toegevoegd, zoals:

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

In blade moet ik de Google Maps API en OverheidIO API-sleutel gebruiken. Ik heb geprobeerd een van de standaard .env-variabelen te krijgen voor het geval ik de aangepaste .env-variabelen verkeerd heb opgemaakt.:

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

Kan iemand me helpen de google maps api en overheidio api key in de blade te noemen?


Antwoord 1, autoriteit 100%

Vijf belangrijkste commando’s als je Laravel niet werkt zoals verwacht na enkele wijzigingen in .env of databasemap of vanwege andere wijzigingen.
Hier is de volledige uitleg:
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

Antwoord 2, autoriteit 25%

Ik heb het op de volgende manier geïmplementeerd:

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

Mijn aanbeveling is om het volgende commando uit te voeren: composer self-update


Antwoord 3, autoriteit 21%

HEEL BELANGRIJK

Alle env() zoals: env('APP_ENV')roept WERKT NIETaan in productie (wanneer je php artisan config:cache)

Wat te gebruiken?
– gebruik env() alleen in configuratiebestanden
– gebruik App::environment() om de omgeving te controleren (APP_ENV in .env).
– gebruik config(‘app.var’) voor alle andere env-variabelen, bijv. config(‘app.debug’)
– maak eigen configuratiebestanden voor uw eigen ENV-variabelen. Voorbeeld:
In je .env:

MY_VALUE=foo

voorbeeld configuratie-app/myconfig.php

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

Toegang in uw code:

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

Meer details zie HIER


Antwoord 4, autoriteit 9%

Je moet alleen toegang krijgen tot .env-waarden rechtstreeks in configuratiebestanden en ze vervolgens overal (controllers, views) openen vanuit configuratiebestanden met behulp van de config()-helper

Bijvoorbeeld:

.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')}}

zie configuratiecachinguit de laravel-documentatie voor meer informatie.


Antwoord 5, autoriteit 7%

Als je de omgeving van de app wilt gebruiken, probeer dan dit:

{{App::environment()}}

Ik heb geen andere variabelen geprobeerd.


Antwoord 6, autoriteit 7%

Sinds Laravel 7.11, kunt u de instructies @env('')en @production()gebruiken in blade-sjablonen:

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

of

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

Zie ook de Laravel Blade-documentatie.


Antwoord 7, autoriteit 3%

Het veroorzaakt problemen om env() ergens anders te gebruiken dan in de config/ map. Gebruik daar env en dan config () in de andere delen van de app


Antwoord 8, autoriteit 3%

Hier is een link naar de documentatie: https://laravel.com /docs/6.x/configuration#retrieving-environment-configuration

In het onderstaande voorbeeld spuug ik de daadwerkelijke fout uit wanneer ik in mijn ontwikkelomgeving ben, maar geef een algemeen bericht als ik in een andere omgeving ben.

@if(App::environment('development'))
    Error: {{ $record->s_error }}
@else
    XML Parsing Error - Please double check that your file is formatted correctly.
@endif

Antwoord 9, autoriteit 3%

haal hier waarden op: config/app.php

in mes:

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

in de klas/controller:

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

Antwoord 10, autoriteit 2%

php artisan config:clear

zou het moeten repareren


Antwoord 11

Je kunt op de volgende manier jaloers worden:

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

verwijs naar link


Antwoord 12

Dit commando moet worden geschreven nadat je het .env-bestand hebt bewerkt om op een gemakkelijke manier toegang te krijgen tot variabelen

php artisan config:cache

Antwoord 13

ik had ook problemen om waarde uit het .env-bestand te halen, toen deed ik dit en het hielp:

  1. Controleer het env-bestand en kijk of je de juiste waarde hebt opgegeven.
  2. controleer vervolgens de blade of controller waar u die variabele uit het .env-bestand gebruikt.
  3. als beide bovenstaande stappen goed gaan, hoeft u alleen deze stappen uit te voeren –

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


Antwoord 14

Voer de volgende opdracht uit.

php artisan optimize

Antwoord 15

if (env('APP_ENV')=='Production')
 do something login,verify etc
else
  do something
  • Hier werkt env(‘APP_ENV’) niet in productie, dus beter om van te krijgen
    config map en maak je eigen bestand en open dat.

  • Ex:-config/customconfig.php ->maak een nieuw bestand

    env(‘APP_ENV’),
    ];

en dan heb je zo toegang

if (config('customconfig.appenv')=='Production')
     do something login,verify etc
    else
      do something 
  • en de laatste run php artisan config:cache

Other episodes