laravel 4重置密码:发送多封电子邮件

时间:2014-04-21 17:55:01

标签: php laravel

我已在我的应用中实施了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));
    }
}

1 个答案:

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