如何在 PHP 中调用 'parent' trait 方法?

How to call a 'parent' trait method in PHP?

这是我的代码

use Illuminate\Foundation\Auth\ResetsPasswords;

class PasswordController extends Controller {
    use ResetsPasswords;
    public function postReset(Request $request){
        // do some stuff
        // ...
        return parent::postReset($request); // <-here is the problem
    }

方法 postReset 存在于 ResetsPasswords 中,但我编写的代码正在 Controller class.[=16= 中查找此方法]

有什么想法吗?

parent::postReset($request)之所以会报致命错误,是因为其父Controllerclass没有postReset方法。在这种情况下,特征不被视为父特征,即使它实现了 postReset() 方法。

要解决此问题,您可以为其指定一个不同的名称:

class PasswordController extends Controller
{
    use ResetsPasswords;

    public function postResetPassword(Request $request) // <- giving it a different name
    {
        // do some stuff
        // ...
        return $this->postReset($request); // and calling ResetsPasswords::postReset
    }
use Illuminate\Foundation\Auth\ResetsPasswords;

class PasswordController extends Controller {
    use ResetsPasswords {
      ResetsPassword::postReset as traitPostReset;
    };

    public function postReset(Request $request){
        // do some stuff
        // ...
        return $this->traitPostReset($request); 
    }
}