2015-12-05 5 views
0

// Маршрут выглядит следующим образом:Laravel электронная почта не работает (электронная почта, отправленная но страница сброса не показывает)

Route::get('forgotPassword', array('as' => 'forgotPassword', 'uses' => '[email protected]')); 

    Route::post('postRemind', array('as' => 'postReminder', 'uses' => '[email protected]')); 

    Route::get('reset/{token}', array('as' => 'getReset', 'uses' => '[email protected]')); 

    Route::post('reset', '[email protected]'); 

//reminder.blade.php

{{ URL::route('getReset', Session::get('_token')) }} 

// remindersController

public function getReset($token = null) 
{ 
    if (is_null($token)) App::abort(404); 

    return View::make('frontend.users.password.reset')->with('token', $token); 
} 

Он послал мне электронную почту и адрес, как это:

http://localhost/html5lav/public/user/reset/2LEYtzhB0QXfHJH3eC4hj2UH6VLXJsc3iawk6iAv 

Howerver, я не могу открыть его. он показывает:

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

Интересно, почему это произошло? Thanks

Данная проблема решается. но теперь проблема в том, что И после отправки последней страницы сброса она показывает: laravel токен сброса пароля недействителен. URL-адрес: localhost/html5lav/public/user/reset /, Thanks

+0

и у меня есть файл сброса PHP в frontend.users.password.reset. Он просто не показывал страницу сброса !!! Помогите? –

ответ

1

Изменить эти две линии:

Route::post('reset/{token}', array(
    'as' => 'getReset', 
    'uses' => '[email protected]' 
)); 
Route::post('reset/{token}', '[email protected]'); 

To:

Route::get('reset/{token}', array(
    'as' => 'getReset', 
    'uses' => '[email protected]' 
)); 
Route::post('reset', '[email protected]'); 
+0

Да, я просто сделал. это видно. И как только вы отправляете окончательную страницу сброса, она показывает: laravel токен сброса пароля недействителен. URL-адрес подобен: http: // localhost/html5lav/public/user/reset/W6OwKW9Dyml9jvymvRSQHDjhlKKLa12oEcoIJHBv –

+0

URL выглядит нормально. Проверьте маркер URL-адреса, соответствует ли столбец 'remember_token' таблицы' users'? – smartrahat

+0

Нет, токен в URL-адресе не совпадает с именем пользователя в базе данных. так что я что-то пропустил? –

1

Ваш маршрут отвечает на запросы POST, потому что это Route :: post, а не Route :: get(). Другая проблема может заключаться в том, что вы отправляете запрос пользователю/сбросу маршрута/{токен}, и у вас может не быть такого маршрута (хотя я не уверен, потому что я не вижу весь файл route.php, возможно, сброс/{токен} префикс).

+0

Да, у меня есть пользователь в качестве префикса. И я уже изменил вопрос. теперь проблема заключается в том, что после отправки последней страницы сброса она показывает: laravel токен сброса пароля недействителен. URL-адрес: localhost/html5lav/public/user/reset/... –

0
<?php 

class RemindersController extends Controller { 

    /** 
    * Display the password reminder view. 
    * 
    * @return Response 
    */ 
    public function getRemind() 
    { 
     return View::make('frontend.users.password.remind'); 
    } 

    /** 
    * Handle a POST request to remind a user of their password. 
    * 
    * @return Response 
    */ 
    public function postRemind() 
    { 

     Password::remind(Input::only('email'), function($message) 
     { 
      $message->subject('HTML5COL学院密码重置邮件'); 
     }); 


     switch ($response = Password::remind(Input::only('email'))) 
     { 
      case Password::INVALID_USER: 
       return Redirect::back()->with('error', Lang::get($response)); 

      case Password::REMINDER_SENT: 
       return Redirect::back()->with('status', Lang::get($response)); 
      //假如忘记密码通知信成功的寄发给用户,则会有一个 status 信息被暂存在 session 内;假如寄发失败的话,则取而代之的会有一个 error 信息被暂存。 
     } 
    } 

    /** 
    * Display the password reset view for the given token. 
    * 
    * @param string $token 
    * @return Response 
    */ 
    public function getReset($token = null) 
    { 
     if (is_null($token)) App::abort(404); 

     return View::make('frontend.users.password.reset')->with('token', $token); 
    } 

    /** 
    * Handle a POST request to reset a user's password. 
    * 
    * @return Response 
    */ 
    public function postReset() 
    { 
     $credentials = Input::only(
      'password', 'password_confirmation', 'token' 
     ); 

     $response = Password::reset($credentials, function($user, $password) 
     { 
      $user->password = Hash::make($password); 

      $user->save(); 
     }); 

     switch ($response) 
     { 
      case Password::INVALID_PASSWORD: 
      case Password::INVALID_TOKEN: 
      case Password::INVALID_USER: 
       return Redirect::back()->with('error', Lang::get($response)); 

      case Password::PASSWORD_RESET: 
       return Redirect::to('/'); 
     } 
    } 

} 
Смежные вопросы