我已在我的应用中实施了Laravel的标准密码重置功能。它很好用,除了我得到2"重置密码"收件箱中的电子邮件。 (附注可能没有任何意义:其中一封电子邮件没有主题,另一封电子邮件没有。)我不认为我做了一些与众不同的事情,所以我&#39我很难过。有什么想法吗?
public function getRemind(){
$view = View::make('password.remind');
$view->title = 'my title';
return $view;
}
表单上的remind.blade.php
{{ Form::open(array('url'=>'do-reset')) }}
<fieldset>
<label for="email">Email Address</label>
{{ Form::email('email', $email, array('id'=>'email')) }}
<div id="button_wrap">
<input type="submit" id="submit" name="submit" value="Send Reset Email">
</div>
</fieldset>
@if(Session::has('status'))
<p>{{ Session::get('status') }}</p>
@endif
@if(Session::has('error'))
<p>{{ Session::get('error') }}</p>
@endif
{{ Form::close() }}
do-reset路由:
Route::post('do-reset', array('uses'=>'RemindersController@postRemind'));
我还没有改变postRemind()方法中的任何内容:
public function postRemind(){
Password::remind(Input::only('email'), function($message){
$message->subject('Click on the link below to reset your password.');
});
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));
}
}
答案 0 :(得分:8)
您可能会看到Password::remind()
函数被调用两次。
我会将代码更改为:
public function postRemind()
{
$response = Password::remind(Input::get('email'), function($message) {
$message->subject('Click on the link below to reset your password.');
});
switch ($response) {
case Password::INVALID_USER:
return Redirect::back()->with('error', Lang::get($response));
case Password::REMINDER_SENT:
return Redirect::back()->with('status', Lang::get($response));
}
}