2017-01-16 3 views
-1

Je suis nouveau sur laravel 5.3. J'utilise sentinelle cartalyst pour l'authentificationLa méthode [sendEmail] n'existe pas

Web.php

Route::post('/register','[email protected]'); 
Route::get('/activate/{email}/{activationCode}' , '[email protected]'); 

RegistrationController.php

public function register(Request $request){ 
    $user = Sentinel::register($request->all()); 
    $activation = Activation::create($user); 
    $role = Sentinel::findRoleBySlug('student'); 
    $role->users()->attach($user); 
    $this->sendEmail($user,$activation->code); 
    Alert::info('Mail has been sent to activate your account', 'Confirmation Email')->persistent("Close this"); 
    return redirect::back(); 
} 

méthode authenticate dans le contrôleur d'enregistrement -

public function activate($email,$activationCode){ 

    $user = User::whereEmail($email)->first(); 

    $sentinelUser = Sentinel::findById($user->id); 

    if(Activation::complete($sentinelUser, $activationCode)){ 

     return redirect('/'); 

    } 
} 

this is the image of complete code of registrationController

quand j'ai essayé de soumettre le bouton alors j'eu cette erreur -

BadMethodCallException en ligne Controller.php 82: Méthode [sendEmail] n'existe pas.

S'il vous plaît aidez-moi, Merci

+0

Eh bien, est-il une fonction 'sendEmail' dans votre RegistrationController? – aynber

+0

oui il y a la fonction sendEmail() dans la fonction de registre –

+0

Pouvez-vous poster le code complet de votre RegistrationController? – Paras

Répondre

1


$this->sendEmail($user,$activation->code); tente de faire appel à une méthode qui est censé être existant quelque part, mais pas le trouver.

Vous pouvez simplement définir la fonction quelque part avec toutes les logiques que vous voulez. par exemple.

private function SendEmail($user, $activation->code) { // your logic goes here }

Espérons que cela résoudra votre problème ....