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';
}
?>
这是我在controllerResetPasswordController.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
命名空间,因此现在将使用ControllerApp\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我强烈建议你这样读:如果你在读了这篇文章后还有问题,请告诉我,祝你好运,非常感谢!我真的很感谢你的帮助!