2017-01-16 31 views
-1

我是laravel 5.3的新手。我使用cartalyst前哨用於認證方法[sendEmail]不存在

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

authenticate方法 -

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

當我試圖提交按鈕,然後我得到這個錯誤 -

BadMethodCallException在Controller.php這樣行82:方法[sendEmail]不存在。

請幫我,謝謝

+0

嗯,是有一個'功能sendEmail'在這個RegistrationController? – aynber

+0

是的寄存器函數中有sendEmail()函數 –

+0

你可以發佈RegistrationController的完整代碼嗎? – Paras

回答

1


$this->sendEmail($user,$activation->code);正試圖以一個應該在某個地方存在的方法調用,但它無法找到它。

你可以簡單地用你想要的所有邏輯定義函數。例如

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

希望這將解決您的問題....