2016-12-22 2 views
1

Ich habe viele Beiträge in Bezug auf Putting-Controller in Unterordnern gefunden, die meisten, wenn nicht alle scheinen mit Namespace oder Benennung Probleme verwandt sein. Ich kann es einfach nicht funktionieren, und bekomme die folgenden ReflectionException und FatalError Reporting die Klasse wird verwendet.Laravel Route zum Controller in Unterordner Fehler erhalten

[2016-12-22 16:51:13] local.ERROR: ReflectionException: Class App\Http\Controllers\Admin\DashboardController does not exist in /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Container/Container.php:749 
Stack trace: 
#0 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Container/Container.php(749): ReflectionClass->__construct('App\\Http\\Contro...') 
#1 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Container/Container.php(644): Illuminate\Container\Container->build('App\\Http\\Contro...', Array) 
#2 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(709): Illuminate\Container\Container->make('App\\Http\\Contro...', Array) 
#3 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Route.php(203): Illuminate\Foundation\Application->make('App\\Http\\Contro...') 
#4 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Route.php(316): Illuminate\Routing\Route->getController() 
#5 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Route.php(278): Illuminate\Routing\Route->controllerMiddleware() 
#6 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Router.php(655): Illuminate\Routing\Route->gatherMiddleware() 
#7 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\Routing\Router->gatherRouteMiddleware(Object(Illuminate\Routing\Route)) 
#8 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Router.php(618): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request)) 
#9 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Router.php(596): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request)) 
#10 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(267): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) 
#11 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request)) 
#12 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#13 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(137): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure)) 
#14 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#15 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(104): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#16 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(149): Illuminate\Pipeline\Pipeline->then(Object(Closure)) 
#17 /vagrant/myApp/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) 
#18 /vagrant/myApp/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) 
#19 {main} 
[2016-12-22 16:51:13] local.ERROR: Symfony\Component\Debug\Exception\FatalErrorException: Cannot declare class App\Http\Controller\Admin\DashboardController, because the name is already in use in /vagrant/myApp/app/Http/Controllers/Admin/DashboardController.php:0 
Stack trace: 
#0 {main} 

Ich habe versucht mit verschiedenen Klassennamen, die nichts gelöst haben. Solange ich zu einem Controller im Admin-Ordner/Namespace route, erhalte ich den aufgelisteten Fehler. Ich habe lief composer dump-autoload nach jeder Änderung und lief php artisan cache:clear nur um sicher zu sein

Meine Ordnerstruktur

/app/ 
    Console/ 
    Exceptions/ 
    Http/ 
     Controllers/ 
      Admin/ 
       DashboardController.php 
      Auth/ 
      Controller.php 
      ...OtherController.php files live here in the base Controller folder 
     Middleware/ 
    Providers/ 

/routes/web.php

... 
// Admin Routes 
Route::group([ 'namespace' => 'Admin','prefix' => 'admin' ], function(){ 

    Route::get('/', '[email protected]')->name('admin.dashboard'); 

}); 

/app/Http /Controllers/Admin/DashboardController.php

<?php 

namespace App\Http\Controller\Admin; 

use App\Http\Controllers\Controller; 

class DashboardController extends Controller { 

    public function showAdminHome() { 
     return view('admin.dashboard'); 
    } 

} //- END Admin\DashboardController{} 

Ich habe keine Dinge mehr zu versuchen und jede Hilfe zu schätzen wissen.

+0

In Ihrem DashboardController-Namespace müssen Sie das 's' hinzufügen, um' Controller' zu pluralieren –

Antwort

2

Sie benötigen richtige Namespace verwenden, um den Fehler zu beheben:

namespace App\Http\Controllers\Admin; 
+1

Sohn eines .... HA danke. total vermisst das "s" – Nathan

0

überprüfen Sie die Namespace auch vollständigen Pfad im Namensraum hinzuzufügen.

Namespace App \ Http \ Controller \ Admin;

Verwandte Themen