2016-12-26 9 views
-1

Ich versuche Laravel Anwendung auf ver 5.3 zu bauen, ich bin ein Dienstleister erstellen und registrieren versuchen, folgende:

public function register() 
{ 
    $this->checkDomainName(); 
    $this->app->singleton('domain', function() 
    { 
     return $this->domain; 
    }); 
} 

/** 
* Checking domain status 
*/ 
public function checkDomainName() 
{ 
    $domain = php_sapi_name() == 'cli' ? 'nitseditor.com' : $this->app['request']->server('HTTP_HOST'); 
    return $domain; 
} 

Jetzt sterben Dump-App Variable Ich rufe über einen Controller:

namespace Nitseditor\Controller; 

use Illuminate\Routing\Controller; 
use \App; 

class DomainController extends Controller 
{ 
    // 

    function index() 
    { 
     dd($app); 
    } 
} 

ich meine ich überprüfe, ob es wie $app['domain'] oder nicht App zugeordnet ist. Aber es zeigt undefined variable app. Helfen Sie mir.

+0

Beziehen Sie sich auf Laravel passieren kann oder Lumen? * Es gibt keine ** '$ app' ** globale Variable in Laravel! * – nyedidikeke

+0

Mögliches Duplikat von [laravel Verwendung $ app in Routen Fehler Undefinierte Variable: app] (http://stackoverflow.com/questions/35619101/laravel-use -app-inside-routes-error-undefined-variable-app) – nyedidikeke

Antwort

2

können Sie verwenden app() Hilfsmethode, die die verfügbaren Container-Instanz zurückkehren, versuchen Sie es wie:

dd(app()); 

Und in Ihrem Fall Ihr kann es tun wie:

app('domain'); 
+0

Ich habe das versucht. Aber es funktioniert nicht. –

+0

Können Sie die App() -Methode nicht verwenden? –

+0

Nein. Ich versuchte mit '\ App :: make ('Domäne'); Ich erhalte Fehler' ErrorException in DomainServiceProvider.php Zeile 37: undefined Eigenschaft: Nitseditor \ Providers \ DomainServiceProvider :: $ domain' –

0

Sie sollten app() verwenden Helfer statt Variable. Aber in der Steuerung und anderen Klassen Laravel es ist viel mehr convinient automatic injection zu verwenden:

function index(BindedClass $variable) 
-1

Es gibt keine $app Variable definiert im Rahmen des Controllers Methode. Wenn Sie versuchen, auf den IoC-Container von Laravel zuzugreifen, können Sie die Hilfsfunktion app() verwenden.

$app = app(); 

In Ihrem Fall, wenn Sie die 'domain' zugreifen möchten, dass Sie Ihren Service-Provider gebunden in die Zeichenkette 'domain' als Parameter an app()

$domain = app('domain'); 
+0

Ich erhalte einen Fehler von 'Undefinierte Eigenschaft: Nitseditor \ Providers \ DomainServiceProvider :: $ domain' –

+2

Das ist ein Fehler in Ihrem Dienstanbieter, der ein separates Problem ist. Es bezieht sich darauf, wo Sie '$ this-> domain' verwendet haben. Es bedeutet, dass es keine Eigenschaft namens "Domäne" finden kann. Kann nicht weiter helfen, bis Sie den Rest Ihres Codes bereitstellen. – Jonathon

+0

Auch, warum der Downvote? Meine Antwort, die den meisten anderen Antworten ähnlich ist, ist ziemlich korrekt. – Jonathon

Verwandte Themen