Tom*_*ras 7 php traits laravel laravel-5
我无法在我的 Controller 类中覆盖特征的方法。这是我的 trait 方法的一个例子:
protected function resetPassword($user, $password)
{
$user->password = bcrypt($password);
$user->save();
Auth::login($user);
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class PasswordController extends Controller
{
use ResetsPasswords {
resetPassword as newReset;
}
/**
* Create a new password controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
protected function resetPassword($user, $password)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我找到了一个例子,但我不确定我是否走对了路。
由于您已经自己完成了,您需要为框架特征的resetPassword方法设置别名,然后实现您自己的方法:
namespace App\Http\Controllers\Auth;
use Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class PasswordController extends Controller
{
use ResetsPasswords {
resetPassword as frameworkResetPassword;
}
protected function resetPassword($user, $password)
{
// Do your custom password reset logic here
$user->password = bcrypt($password);
$user->save();
Auth::login($user);
// Then you can pass the work over to framework's implementation
// if that's needed.
// $this->frameworkResetPassword($user, $password);
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,Laravel 自己的密码重置功能支持用户登录。