it-swarm.com.de

Rufen Sie den Umgebungswert im Controller ab

In meiner .env-Datei habe ich Folgendes:

IMAP_HOSTNAME_TEST=imap.gmail.com
[email protected]
IMAP_PASSWORD_TEST=mypw

Jetzt möchte ich sie in meinem Controller verwenden. Ich habe es versucht, aber ohne Ergebnis:

$hostname = config('IMAP_HOSTNAME_TEST');

Die Variable $ hostname ist gleich null. Wie kann ich diese Konfigurationsvariablen in meinem Controller verwenden?

22
nielsv

versuche es mit 

<?php $hostname = env("IMAP_HOSTNAME_TEST", "somedefaultvalue"); ?>
40
Chetan Ameta

Funktioniert nicht in Laravel 5.3+, wenn Sie versuchen möchten, auf den Wert wie unten gezeigt vom Controller zuzugreifen, es gibt immer nullzurück.

<?php

$value=env('MY_VALUE','default_value');

LÖSUNG: Stattdessen müssen Sie eine Datei im Konfigurationsordner ..say values.php erstellen und dann Die Codes wie folgt eingeben:

values.php

<?php

return [

    'myvalue' => env('MY_VALUE',null),

    //add other values as you want

]

Rufen Sie dann den Wert in Ihrer Steuerung mit dem folgenden Code auf

<?php


$value=\Config::get('credentials.myvalue')

Wobei "Credentials" der Dateiname ist, gefolgt vom Schlüssel "myvalue" Hoffe, es hilft

22

Alle in .env-Datei aufgelisteten Variablen werden in den Super-Global-Code $_ENV PHP geladen, wenn Ihre Anwendung eine Anforderung erhält . Kasse Laravel Konfigurationsseite

$_ENV['yourkeyhere'];
8
Basheer Ahmed

Ich dachte, ich würde eine Antwort hinzufügen, um das vorher Gesagte zu vereinfachen. Nur Konfigurationsdateien können auf env-Variablen zugreifen und diese dann weiterleiten.

Schritt 1.) Fügen Sie Ihre Variable zu Ihrer .env-Datei hinzu, dh.

EXAMPLE_URL="http://google.com"

Schritt 2.) Erstellen Sie eine neue Datei im Ordner config, einen beliebigen Namen, z.

config/example.php

Schritt 3.) In dieser neuen Datei füge ich ein Array hinzu, das die Umgebungsvariable enthält.

<?php
return [
  'url' => env('EXAMPLE_URL')
];

Schritt 4.) Weil ich es "Beispiel" nenne, ist mein Konfigurations-Namespace jetzt Beispiel. Nun kann ich in meinem Controller auf diese Variable zugreifen mit:

$url = \config('example.url');

Tipp - Wenn Sie am oberen Rand Ihres Controllers use Config; hinzufügen, benötigen Sie keinen Backslash (der den Root-Namespace angibt). Ie.

namespace App\Http\Controllers;   
use Config; // Added this line

class ExampleController extends Controller
{
    public function url() {
        return config('example.url');
    }
}

--- WICHTIG ---Denken Sie daran, in die Konsole php artisan config:cache einzugeben, nachdem Sie die Datei example.php erstellt haben. Konfigurationsdateien und -variablen werden zwischengespeichert. Wenn Sie Änderungen vornehmen, müssen Sie diesen Cache leeren. Dies gilt auch für die .env-Datei, die geändert/hinzugefügt wird.

4
Grant

Sie können dieses Format verwenden (Getestet auf Laravel 5.5). In meinem Fall habe ich die Daten von Datenbankverbindungen abgerufen und auf Controller verwendet:

$User = env('DB_USERNAMEchild','');
$Pass = env('DB_PASSWORDchild','');

Der zweite Parameter kann null sein oder einen beliebigen Standardwert festlegen, wenn DB_USERNAMEchild null ist.

ihre .env-Datei kann gleich sein:

DB_Host=localhost
DB_DATABASE=FATHERBD
DB_USERNAME=root
DB_PASSWORD=password

DB_DATABASEchild=ZTEST
DB_USERNAMEchild=root
DB_PASSWORDchild=passwordofchild
2
Zarkys Salas

InController

$hostname = $_ENV['IMAP_HOSTNAME_TEST']; (or) $hostname = env('IMAP_HOSTNAME_TEST');

In blade.view

{{$_ENV['IMAP_HOSTNAME_TEST']}}
1
Anandan K

in Laravel Controller

public static function mail($param)
{
    //$_ENV['yourkeyhere'];
    $mailgunsecret = env('MAILGUN_SECRET');
    $mailguurl = env('MAILGUN_DOMAIN');

}

in Laravel Blade-Dateien

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

must run this commands

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

Beispiel: Zugriff auf Laravel-.env-Variablen in Blade

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

{{ env('APP_ENV') }} // returns 'local' 
{{ env('APP_URL') }} // returns 'http://localhost' 

Umgebungswert in Controller abrufen

1
Jd Patel

sie können so nicht auf die Variable env zugreifen.

in der .env-Datei, die Sie schreiben

IMAP_HOSTNAME_TEST=imap.gmail.com  // i am okay with this

als nächstes befindet sich im Konfigurationsordner eine mail.php, die Sie zum Codieren verwenden können. Wie Sie mit Mail-Funktionalität arbeiten. Sie können auch eine andere Datei verwenden.

return [

//..... other declarations
'imap_hostname_test' => env('IMAP_HOSTNAME_TEST'),

// Sie verstecken den Wert auch in config

];

sie können die Variable von einem Controller mit 'config (
Welche Datei auch immer Sie im Konfigurationsordner verwenden. Sie müssen diesen Dateinamen (ohne Erweiterung) + '.' + 'Variablenname' + ')'. Aktueller Fall Sie können die Variable wie folgt aufrufen.

$hostname = config('mail.imap_hostname_test');

da du die Variable in mail.php deklarierst und der Variablenname imap_hostname_test ist. Sie müssen so anrufen. Wenn Sie diese Variable in app.php deklarieren, sollten Sie aufrufen

$hostname = config('app.imap_hostname_test');
0
Rajib

Es ist eine bessere Idee, Ihre Konfigurationsvariablen in eine Konfigurationsdatei zu schreiben.

In Ihrem Fall würde ich vorschlagen, Ihre Variablen in config/mail.php like zu setzen

'imap_hostname' => env('IMAP_HOSTNAME_TEST', 'imap.gmail.com')

und beziehen sich auf sie durch

config('mail.imap_hostname')

Zuerst wird versucht, den Wert der Konfigurationsvariablen in der Datei . Env abzurufen. Wenn der Wert der Variablen in der Datei . Env nicht gefunden werden konnte, wird der Wert der Variablen aus der Datei - abgerufen. config/mail.php

0
Hamid Parchami