2016-05-19 5 views
3

Ошибка при загрузке маршрута/пользователей или/пользователь/добавление и возврат ошибки;Приложение класса Http Controllers UserController не существует

ReflectionException в Route.php линии 280: Класс App \ Http \ Контроллеры \ App \ Контроллеры \ UserController не существует

UserController действительно существует, и она не находится в папке в моих контроллеров папка.

Мой файл маршрута;

Route::group(['middleware' => 'auth'], function(){ 
    Route::get('/route/selector', '[email protected]'); 

    // Admin Only // 
    Route::group(['middleware' => 'isAdmin'], function(){ 
     Route::get('/admin', '[email protected]'); 

     Route::get('/users', '[email protected]'); 
     Route::get('/user/add', '[email protected]'); 
     Route::post('/user/add', '[email protected]'); 
     Route::get('/user/edit/{id}', '[email protected]'); 
     Route::post('/user/edit/{id}', '[email protected]'); 
     Route::get('/user/delete/{id}', '[email protected]'); 
    }); 
}); 

My UserController;

<?php 

namespace App\Http\Controllers; 

use App\Http\Requests; 
use App\User; 
use App\UserTypes; 

use Auth; 
use Hashids; 
use Redirect; 
use Request; 
use Hash; 

class UserController extends Controller 
{ 
    public function index(){ 
     $users = User::get(); 
     return view('users.index', compact('users')); 
    } 

    public function getAdd(){ 
     $user_type = UserTypes::pluck('user_type', 'id'); 
     return view('users.add', compact('user_type')); 
    } 

    public function postAdd(){ 
     $input = Request::all(); 
     $password = str_random(8); 
     User::create(
      'email' => $input['email'], 
      'password' => Hash::make($password), 
      'first_name' => $input['first_name'], 
      'surname' => $input['surname'], 
      'phone_number' => $input['phone_number'], 
      'user_type' => $input['user_type'], 
     ); 

     return Redirect::action('[email protected]'); 
    } 

    public function getEdit($id){ 

    } 

    public function postEdit($id){ 

    } 

    public function delete($id){ 
     User::find(current(Hashids::decode($id)))->delete(); 
     return Redirect::action('[email protected]'); 
    } 

} 

Когда я удаляю User :: create(); часть ошибка исчезает, будет ли это иметь какое-то отношение к этому?

+1

Попробуйте запустить команду 'composer dumpauto'. –

+0

Каков путь вашего 'UserController'? Поскольку вы используете 'namespace App \ Http \ Controllers', он должен находиться внутри каталога' app/Http/Controllers' –

+0

Спасибо, композитор dumpauto не внес каких-либо различий. Кроме того, контроллер находится в каталоге app/Http/Controllers –

ответ

0

Заменить этот код

Route::group(['middleware' => 'isAdmin'], function(){ 
    Route::get('/admin', '[email protected]'); 

    Route::get('/users', '[email protected]'); 
    Route::get('/user/add', '[email protected]'); 
    Route::post('/user/add', '[email protected]'); 
    Route::get('/user/edit/{id}', '[email protected]'); 
    Route::post('/user/edit/{id}', '[email protected]'); 
    Route::get('/user/delete/{id}', '[email protected]'); 
}); 

с этим

Route::group(['middleware' => 'isAdmin'], function(){ 
    Route::get('/admin', '[email protected]'); 
    Route::group(['namespace' => YOUR_NAMESPACE], function(){ 
     Route::get('/users', '[email protected]'); 
     Route::get('/user/add', '[email protected]'); 
     Route::post('/user/add', '[email protected]'); 
     Route::get('/user/edit/{id}', '[email protected]'); 
     Route::post('/user/edit/{id}', '[email protected]'); 
     Route::get('/user/delete/{id}', '[email protected]'); 
    }); 
}); 

& в вашем UserController вы должны исправить ваши namespace также

ваш UserController например находится в app/Controllers директории, то ваш UserController Wi буду как этот

<?php 

namespace App\Controllers; 

use App\Http\Requests; 
use App\User; 
use App\UserTypes; 

use Auth; 
use Hashids; 
use Redirect; 
use Request; 
use Hash; 

class UserController extends Controller 
{ 
    public function index(){ 
     $users = User::get(); 
     return view('users.index', compact('users')); 
    } 

    public function getAdd(){ 
     $user_type = UserTypes::pluck('user_type', 'id'); 
     return view('users.add', compact('user_type')); 
    } 

    public function postAdd(){ 
     $input = Request::all(); 
     $password = str_random(8); 
     User::create(
      'email' => $input['email'], 
      'password' => Hash::make($password), 
      'first_name' => $input['first_name'], 
      'surname' => $input['surname'], 
      'phone_number' => $input['phone_number'], 
      'user_type' => $input['user_type'], 
     ); 

     return Redirect::action('[email protected]'); 
    } 

    public function getEdit($id){ 

    } 

    public function postEdit($id){ 

    } 

    public function delete($id){ 
     User::find(current(Hashids::decode($id)))->delete(); 
     return Redirect::action('[email protected]'); 
    } 

} 

& маршрут будет как этот

Route::group(['middleware' => 'auth'], function(){ 
    Route::get('/route/selector', '[email protected]'); 

    // Admin Only // 
    Route::group(['middleware' => 'isAdmin'], function(){ 
     Route::get('/admin', '[email protected]'); 
     Route::group(['namespace' => '\App\Controllers'], function(){ 
      Route::get('/users', '[email protected]'); 
      Route::get('/user/add', '[email protected]'); 
      Route::post('/user/add', '[email protected]'); 
      Route::get('/user/edit/{id}', '[email protected]'); 
      Route::post('/user/edit/{id}', '[email protected]'); 
      Route::get('/user/delete/{id}', '[email protected]'); 
     }); 
    }); 
}); 
+0

My User Controller находится в приложениях/Http/Controllers, а не в приложениях/контроллерах, это может измениться? Я уже создал множество приложений для laravel, и это никогда не было проблемой. –

+0

Можете ли вы вставить код ошибки –

+0

Когда я удаляю User :: create(); часть ошибка исчезает, будет ли это иметь какое-то отношение к этому? –

2

нашел ответ;

Метод создания;

User::create(
      'email' => $input['email'], 
      'password' => Hash::make($password), 
      'first_name' => $input['first_name'], 
      'surname' => $input['surname'], 
      'phone_number' => $input['phone_number'], 
      'user_type' => $input['user_type'], 
     ); 

Отсутствие правильных квадратных скобок;

Смежные вопросы