Laravel: ReflectionException – Klasse App\Http\Controller\XXXX nicht vorhanden

Ich versuche zu laufen Testseite mit Laravel.

Wenn ich mit Controller, jedes mal bekam ich Meldung:

Laravel: ReflectionException – Klasse App\Http\Controller\XXXX nicht vorhanden

Nicht jemand weiß wo das problem ist?

Dies ist mein routes/web.php:

   Route::get('/hi', '[email protected]');

HiController.php (es ist im richtigen Ordner-Struktur: app/Http/Controller/

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HiController extends Controller
{
    public function index(){
      return "test";
    }
}

RouteServiceProvider.php

namespace App\Providers;

use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        //

        parent::boot();
    }

    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        //
    }

    /**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::middleware('web')
             ->namespace($this->namespace)
             ->group(base_path('routes/web.php'));
    }

    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapApiRoutes()
    {
        Route::prefix('api')
             ->middleware('api')
             ->namespace($this->namespace)
             ->group(base_path('routes/api.php'));
    }
}

Auch, wenn ich mit diesem code routes/web.php es funktioniert:

Route::get('/hi', function (){
  return "hi";
});

Es ist sauber Laravel 5.6 installation auf Windows, wamp64.

Versuchte ich auch, mit „composer dump-auto-load“ und „php artisan config:klar,“ aber nichts funktioniert.

Vielen Dank im Voraus.

InformationsquelleAutor surly555 | 2018-07-24



2 Replies
  1. 0

    Führen Sie die folgenden (vorausgesetzt, Ihr app-name ist app):

    php artisan app:name app

    Dann verwenden Sie die folgenden namespace-auch in Ihren controller:

    app\Http\Controllers\Controller
  2. 0

    Q: warum XXXX, wenn es HiController? Über die Frage, ob es den gibt Hallo, technisch gesehen, es hat zu funktionieren wenn es die Vanille.
    Seit der auf windows-und wamp64, ich glaube nicht, dass Sie die Datei Berechtigungen sind eine Sache, also lasst uns überspringen.

    1. Stellen Sie sicher, dass der name der Datei ist in der Tat richtig,
    2. Stellen Sie sicher, dass die Datei existiert tatsächlich im richtigen Verzeichnis
    3. Stellen Sie sicher, dass die namespce ist namespace App\Http\Controllers;
    4. Fügen Sie diese verwenden, nur für den Fall: verwenden Sie App\Http\Controllers\Controller;
    5. Nur um sicher zu sein, stellen Sie sicher, dass in Ihrem composer.json Sie haben diese (sollte man haben, da ist es Standard):

      "autoload": {
          "psr-4": {
              "App\\": "app/"
          }
      }
    6. Wenn keine arbeiten, versuchen Sie, erstellen Sie einen neuen controller php artisan make:controller SomeController und versuchen Sie es mit diesem ein.

    • Ich habe vergessen zu sagen, dass ich XXXX statt HiController, weil jeder controller, den ich machte, wirft den gleichen Fehler. Habe sogar versucht mit SomeController. Auch, wenn ich route:Liste in cmd bekam ich: „Klasse App\Http\Controller\HiController nicht vorhanden“
    • Sind Sie sicher, dass der Unterricht endet mit .php und im inneren, beginnt mit <? php und endet mit ?> ?
    • Ja, es nutzen <?php. Könnte man dies irgendwie verwandt mit .htaccess?
    • Danke @abr für die ausführliche Antwort. Habe ich gemacht, es funktioniert, nachdem ich HiController.php in Verkäufer/laravel/laravel/app/Http/Controller. Ist, dass die Positionierung von Datei richtige Weg, es zu tun?
    • Ich fürchte Nein, ist es nicht. Das ist nicht einmal laravel Standard-Dateien. Laravels default-Dateien sind in Verkäufer/laravel/framework/src…. Sie haben falsch installiert Laravel. Die meisten wahrscheinlich, es wird angezeigt das Sie installiert haben eine laravel application im file-system eines anderen laravel Projekt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.