Php 拉威尔误差“;目标类[App\Http\Controllers\ResetPasswordController]不存在;

Php 拉威尔误差“;目标类[App\Http\Controllers\ResetPasswordController]不存在;,php,laravel,routes,controller,Php,Laravel,Routes,Controller,我试图通过一个链接进入我的重置密码页面change Password.blade.php,但它抛出了一个错误,指出:illumb\Contracts\Container\BindingResolutionException目标类[App\Http\Controllers\ResetPasswordController]不存在。 这是指向web.php中页面的路径: /**CHANGE PASS */ Route::get('/updatepassword', 'ResetPasswordCont

我试图通过一个链接进入我的重置密码页面
change Password.blade.php
,但它抛出了一个错误,指出:
illumb\Contracts\Container\BindingResolutionException目标类[App\Http\Controllers\ResetPasswordController]不存在。

这是指向
web.php
中页面的路径:

/**CHANGE PASS */
Route::get('/updatepassword', 'ResetPasswordController@updatePassword');
<?php

namespace App\Http\Controllers\Auth;

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

class ResetPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset requests
    | and uses a simple trait to include this behavior. You're free to
    | explore this trait and override any methods you wish to tweak.
    |
    */

    /** SUBMIT UPDATE PASSWORD
     *
     * @param request data
     * @redirect user profile view
     */
    
    public function updatePassword(Request $request){
        /*Grab authenticated user record*/
        if(empty($request->id)){
            $id = Auth::user()->id;
        }
        else{
            $id = $request->id;
        }
        /*Update query*/
        $update = User::where('id','=',$id)->first();

        $update->password = bcrypt($request->password);

        $update->save();
        return response($update);
    }

    /**
     * Where to redirect users after resetting their password.
     *
     * @var string
     */
    protected $redirectTo = '/home';
}
?>
这是我在controller
ResetPasswordController.php
中的代码:

/**CHANGE PASS */
Route::get('/updatepassword', 'ResetPasswordController@updatePassword');
<?php

namespace App\Http\Controllers\Auth;

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

class ResetPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset requests
    | and uses a simple trait to include this behavior. You're free to
    | explore this trait and override any methods you wish to tweak.
    |
    */

    /** SUBMIT UPDATE PASSWORD
     *
     * @param request data
     * @redirect user profile view
     */
    
    public function updatePassword(Request $request){
        /*Grab authenticated user record*/
        if(empty($request->id)){
            $id = Auth::user()->id;
        }
        else{
            $id = $request->id;
        }
        /*Update query*/
        $update = User::where('id','=',$id)->first();

        $update->password = bcrypt($request->password);

        $update->save();
        return response($update);
    }

    /**
     * Where to redirect users after resetting their password.
     *
     * @var string
     */
    protected $redirectTo = '/home';
}
?>

如果您检查您的
RouteServiceProvider
,您将看到它将
web.php
中用于控制器的命名空间设置为
App\Http\Controllers
。您要使用的控制器位于命名空间
App\Http\Controllers\Auth
中,因此您必须为其指定命名空间的此附加部分才能找到它:

Route::get('...', 'Auth\ResetPasswordController');

由于它被设置为使用
App\Http\Controllers
命名空间,因此现在将使用Controller
App\Http\Controllers\Auth\ResetPasswordController
;如果不指定名称空间的附加部分,您将最终得到
App\Http\Controllers\ResetPasswordController
,这是您当前面临的问题


App\Http\Controllers\ResetPasswordController
不是
App\Http\Controllers\Auth\ResetPasswordController
App\Http\Controllers\ResetPasswordController
不是
App\Http\Controllers\Auth\ResetPasswordController
@lagbox你介意详细说明吗?我什么时候指定它抛出此错误的命名空间部分
ReflectionException类App\Http\Controllers\Auth\Request不存在
,这是一个完全不同的问题,与该控制器文件中的PHP命名空间有关。。。您需要了解名称空间在PHP中是如何工作的,才能继续任何操作further@DevMatt我强烈建议你这样读:如果你在读了这篇文章后还有问题,请告诉我,祝你好运,非常感谢!我真的很感谢你的帮助!