PHP的工匠路线:列表ReflectionException类不存在,但在那里?

时间:2019-08-19 20:32:10

标签: laravel-5

当我使用标题中所述的命令时遇到了这个问题,它没有找到我在auth文件夹中拥有的LoginController。 它表明它想使用错误的路径加载控制器。

这很奇怪,因为我从未触摸或移动过该控制器上的任何东西,而当我注意到尝试使用route:list命令的错误时,我正在创建一个迁移,因为对于我的应用程序,它正常工作,除非我注销时不会重定向到我的登录名不再查看,因此不会重定向到公众,因此显示404。

我不知道我怎么做才弄坏了那些东西。

我尝试将控制器的命名空间更改为在错误上显示的名称空间,但是这很奇怪,因为当我更改它时,新的错误显示了控制器的正确路径,但是由于更改后,它无法再次找到它。 我也尝试了以下命令:config:cache,composer dump-autoload,composer update。

这是我的控制者:

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

}

我的网络路线:

<?php

Auth::routes();


Route::get('/home', 'HomeController@index')->name('home');



Route::namespace('Admin')->prefix('admin')->middleware(['auth',  'auth.admin'])->name('admin.')->group(function(){
    Route::resource('/ImagenAudioVideo',  'PlantillaController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/Imagen',  'PlantillaImagenesController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/Audio',  'PlantillaAudiosController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/Video',  'PlantillaVideosController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/ImagenAudio',  'PlantillaImagenesAudioController', ['except' => ['show', 'create', 'store'] ]);
    Route::resource('/EditarUsuario',  'EditarUsuariosController', ['except' => ['show', 'create', 'store'] ]);

    Auth::routes(['register' => false]);

    Route::get('/', function () {
    return view('home');
});

});

例外:

  ReflectionException  : Class App\Http\Controllers\Admin\Auth\LoginController does not exist

  at /Applications/MAMP/htdocs/ConfiguradorIEM/vendor/laravel/framework/src/Illuminate/Container/Container.php:790

请注意它如何显示不同的路径,但是当我将名称空间更改为异常中显示的路径时,它将与先前的路径引发新的错误。

2 个答案:

答案 0 :(得分:1)

您有两个Auth::routes();声明,第二个声明具有名称空间Admin

这就是为什么会出现此错误的原因:必须将Auth::routes(['register' => false]);命名空间Admin内的行Route删除,因为要向所有{ {1}}个控制器。

请记住,Admin是用于最命名的路由,第二条路由声明会覆盖第一个路由。

答案 1 :(得分:0)

如果有人仍在寻找解决此类错误的方法。

在我的情况下,仅由于我忘记为Billing目录中的控制器指定命名空间而出现错误。

当我在控制器顶部添加此行后,就可以了:

l=list(df.a)

d={i:0 for i in l if str(i)[:3]=='Cat'}

for i in l:
    if str(i)[:3]=='Cat':
        key=i
    else:
        d[key]+=i

>>> print(d)

{'Cat. A': 9, 'Cat. B': 17, 'Cat. C': 4}

问题已解决。