2016-08-08 33 views
1

Ich habe ein neues Verzeichnis Library in der Wurzel von Laravel erstellt.Wie benutzerdefinierte Klasse in Controller Laravel importieren?

Innerhalb ich die Datei mit Klasse setzen:

class My { // }

Also, in Controller Laravel versuche ich, den Zugang zu dieser Klasse zu erhalten:

App\Library\My 

Aber Laravel nicht diesen Weg bestimmen.

Dies ist mein Code:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

use View; 

use App\Library\My; 

class HomeController extends Controller 
{ 
// 
} 
+0

Haben Sie "psr-4" verwendet, wenn nicht 'composer dump-autoload' ausgeführt wurde! – Maraboc

+0

Es hat nicht geholfen: 'composer dump-autoload' – Dev

Antwort

1

Wie oben, stellen Sie sicher, es ist in der App-Verzeichnis platziert und stellen Sie sicher, dass es richtig benannt ist z.

<?php 
    $fOne = new \App\library\functions; 
    $isOk = ($fOne->isOk()); 
?> 
2

Sie sollten Library Ordner in app Ordner

namespace App\Library\My

app Ordner erstellen alrdy psr-4

verwendet wird

In Ihrem Controller

use App\Library\My as My

Es ist Arbeit für mich. Hoffe, diese Antwort ist hilfreich

+0

Wenn ich einige Namespaces verwenden möchte? – Dev

+0

Wenn Sie einen anderen Namespace ohne App wie 'Library \ My' verwenden möchten, sehen Sie sich die Datei' composer.json' unter 'autoload'>' psr-4' an. Fügen Sie neu Ihre benutzerdefinierte Autoload und führen Sie 'Composer Dump-Autoload' in' Terminal' –

+0

@Dev Es funktioniert oder nicht? –

2

Sie müssen alle Klassen korrekt benennen.

So können Sie Ihre Klasse mit use Schlüsselwort importieren, wie so

use App\Library\My; 

.... 

$my = new My(); 

Oder wenn Sie Klassennamen haben widersprüchliche dann können Sie as Schlüsselwort verwenden den Klassennamen an Alias ​​während

use App\Library\My as MySecond; 

.... 

$my = new MySecond(); 

Import Und wenn Sie innerhalb der Methode direkt auf Ihre Klasse zugreifen möchten, können Sie so auf sie zugreifen.

$my = new \App\Library\My(); 

Hinweis: Die führenden \ bedeutet App wurde im globalen Bereich erklärt.

+0

'verwenden App \ Library \ My;' - undefined Namespace – Dev

+0

@Dev zeigen Sie mir den Code Ihrer Klasse und wo Sie sind versuchen, auf die Klasse zuzugreifen? –

+0

Ich habe diese Information zu der Frage hinzugefügt – Dev

Verwandte Themen