首页 文章

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

提问于
浏览
0

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

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

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

我的 class 是这样的

<?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用户;

在我的配置身份验证我有这个:

'model'=> User \ User:class,

1 回答

  • 2

    您的控制器位于 Login 名称空间中,而它应位于 app\Http\Controllers\Login 名称空间中 .

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

相关问题