In Laravel 5, eine „Anwendung“ ist eine Sammlung von PHP-Dateien in einem einzigen Namensraum, in den app/
von Standardordnern gespeichert, und die meisten des Code Laravel 5 in der Probe aus der Dokumentation, dieser Namensraum ist App\
. Zum Beispiel könnte ein Controller in Ihrer Anwendung so aussehen.
namespace App\Http\Controller;
class MyController
{
//...
}
Wenn Laravel Code erzeugt (das heißt, wenn Sie den make:request
Befehl verwenden), muss er wissen, was diese Anwendung Namespace ist (es ist möglich, den Namespace mit dem artisan app:name
Befehl zu ändern). Aus irgendeinem Grund kann Laravel 5 in Ihrem System den Namespace nicht erkennen.
Wenn man sich den Abschnitt schauen von Laravel 5 Kern-Code, der den Namespace
#File: vendor/laravel/framework/src/Illuminate/Console/AppNamespaceDetectorTrait.php
protected function getAppNamespace()
{
$composer = json_decode(file_get_contents(base_path().'/composer.json'), true);
foreach ((array) data_get($composer, 'autoload.psr-4') as $namespace => $path)
{
foreach ((array) $path as $pathChoice)
{
if (realpath(app_path()) == realpath(base_path().'/'.$pathChoice)) return $namespace;
}
}
throw new RuntimeException("Unable to detect application namespace.");
}
Sie werden sehen, dass Laravel erkennt den Namespace, indem Sie auf Ihre composer.json
Datei, und auf der Suche Für ihrerstes gültig psr-4
Namespace erkennt.
Meine Vermutung ist, Ihre composer.json
Datei den Namespace
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
hinzufügen, die in Rücken, und Sie werden gut gehen fehlt.