Laravel 5.1 Controller的命名空间给出了反射异常

时间:2015-12-15 20:51:47

标签: php laravel laravel-5 composer-php laravel-5.1

下午好,我不明白这个例外

  

Container.php第737行中的ReflectionException:类app \ Http \ Controllers \ Login \ LoginController不存在

我知道这与命名空间有关但我配置了我的composer.json自动加载。当我将其更改为app \ Http \ Controllers \ Login时,它可以正常工作。 我也做过工匠clear-compiled和composer dump-autoload

我的班级就像这样

<?php

namespace Login;

use Controller;
use Validator;
use Input;
use Auth;
use Redirect;
use View;

class LoginController extends Controller{}

我的composer.json自动加载

"autoload": {
 "classmap": 
  [ "app/Http/Controllers" , "app/Models" , "database" ],
 "psr-4": {
  "app\\": "app/" 
 }
},

我的控制器目录就像这样

- app
-- Http
--- Controllers
---- Login
----- LoginController.php
-- Models
--- User
---- User.php

提前致谢

编辑:当我使用这样的命名空间时,为什么我的模型文件没有问题:

  

namespace User;

在我的配置中,我有这个:

  

'model'=&gt;用户\用户:类,

1 个答案:

答案 0 :(得分:2)

您的控制器位于登录命名空间中,但它应位于 app \ Http \ Controllers \ Login 命名空间中。

composer.json中没有条目可以改变PHP命名空间的工作方式 - 那里的映射只能用于告诉自动加载器从给定命名空间中查找物理文件的位置。