Laravel 5.2 Klasse nicht gefunden, aber Klasse ist es mit namespace
UPDATE 01/26/16 10:30pm EST: Durch viele Google-suchen habe ich entdeckt, dass ich Missverständnisse, wie namespaces und der benutzerdefinierten Klassen. Wenn jemand anderes mit diesem Problem Lesen Sie dieses tutorial: http://www.techigniter.in/tutorials/how-to-add-custom-class-in-laravel-5/
Es ist kurz und sehr leicht zu verstehen. Es hat geholfen, dieses Problem zu beheben und bewege mich auf meinen nächsten Fehler... 😀
PROBLEM:
Versuch frisch installieren Laravel 5 und meine konvertieren Laravel 4-code zu Laravel 5.
ANFRAGE: mir Bitte helfen, den Fehler zu finden und geben detaillierte Anweisungen, wie um es zu korrigieren.
FEHLER:
FatalErrorException in additionalPCs.php Zeile 4:
Klasse App\Library\AdditionalPCs\additionalComputer' nicht gefunden
Hinweise: habe ich die additionalComputer.php Datei im eigenen Verzeichnis App\Libary\additionalPCs und direkt in der App\Libary-Verzeichnis. Beide Orte den gleichen Fehler erzeugen. Ich bin mit namespaces. (möglicherweise falsch)
Komponist.json
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
IndexController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Library\additionalPCs;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
Protected $layout = 'master';
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
/** Wayne - 03-02-2014 - Moved for loop to a method within its own class. */
$numberofpcs = new additionalPCs();
$addtpcs=$numberofpcs->display();
$this->layout->content = View::make('index')->with('addtpcs', $addtpcs)->with('businesstypelist', businesstype::dropdown())->with('contracttermlist',ContractTerm::dropdown());
}
}
additionalPCs.php
<?php
namespace App\Library;
class additionalPCs extends additionalComputer {
public function display() {
return $this->displayMenu();
}
}
additionalComputer.php (ich habe auch versucht mit App\Library\additionalComputer;)
<?php
namespace App\Library;
use App\Library\AdditionalPCs\additionalComputer;
class additionalPCs extends additionalComputer {
public function display() {
return $this->displayMenu();
}
}
InformationsquelleAutor scrfix | 2016-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
- Update, nachdem Sie Ihre post update:
Den Sie verwenden möchten additionalComputer, so dass Sie importieren müssen seinen namespace, etwa so:
(Hinzugefügt namespace importieren für additionalComputer)
Original post:
Müssen Sie diese Zeile in Ihre Bibliothek:
Verwenden AdditionalPCs (z.B. dem controller) zu ändern:
Zu
Wichtig: es ist
new AdditionalPCs()
(siehe AnfangA
statta
), es muss Ihre Klasse name genau! Das ist die Allgemeine Regel!Darauf geachtet werden, mit Ihrem Namen (groß-und Kleinschreibung). Es ist besser, verwenden Sie die code-Konventionen von PSR-2: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
Ich habe den code für die additionalComputer.php zu dem original-Beitrag.
Meine Korrektur richtig ist. Ich weiß nicht, aber hast du das update den gesamten code? Ich sehe immer noch den falschen namespace enthalten. 😉 Und rechts
App\Library\AdditionalPCs\additionalComputer
existiert nicht. additionalComputer ist im namespace App\Library, so ist esApp\Library\additionalComputer
.Ich bin 100% sicher, dass es user Fehler und nicht dein Vorschlag. Es gibt keinen Zweifel in meinem Kopf darüber. 😀 nur ich lief in das gleiche problem auf eine andere Klasse, und es funktioniert nicht. Ich bin ganz neu mit namespaces. Ich habe über Sie gelesen, aber dies ist mein Erster Versuch mit Ihnen. Sorry, ich wusste nicht, aktualisieren Sie den code auf stackoverflow habe ich nur einen zusätzlichen code für addtionalComputer.php. Ich werde zu aktualisieren, der rest von ihm.
Ich habe aktualisiert, der Fehler und der code für das, was ich bin mit der original-post. Ich möchte sagen, vielen Dank für die Zeit nehmen, zu schauen, diese über.
InformationsquelleAutor schellingerht
Namespace der jeweiligen Klasse ist der container-Verzeichnis, das diese Klasse nicht die class-Datei selbst.
In Ihrem additionalPCs.php Datei für den namespace, loszuwerden \AdditionalPCs, sollte es einfach sein:
Wenn es für Sie hilfreich war, upvote. Es ist eine Verantwortung, nicht ein Privileg, upvote hilfreiche Literatur
InformationsquelleAutor Makan