2016-06-10 6 views
1

Ich kann eine Methode eines Merkmals in meiner Controller-Klasse nicht überschreiben. Hier ist ein Beispiel meiner Eigenschaft Methode:Überschreiben einer Merkmalsmethode in Laravel-Controller

protected function resetPassword($user, $password) 
{ 
    $user->password = bcrypt($password); 

    $user->save(); 

    Auth::login($user); 
} 

Und hier ist mein Controller:

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) 
    { 

    } 
} 

Ich fand ein Beispiel, aber ich bin nicht sicher, dass ich auf einem richtigen Weg bin.

+0

Nein, aber die Methode in der Eigenschaft funktioniert. Ich muss es in meinem Controller neu schreiben. –

+1

Mögliches Duplikat von [PHP override Merkmalmethode der Eigenschaft der Elternklasse] (http://stackoverflow.com/questions/36431292/php-override-trait-method-of-parent-classs-trait) –

Antwort

0

Wie Sie es schon selbst getan haben, müssen Sie alias resetPassword Methode des Rahmen Charakterzug und dann selbst implementieren.

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); 
    } 
} 

By the way, Laravel eigenen password reset functionality unterstützt Anmeldung Benutzer in

Verwandte Themen