1

laravelのドキュメントから例をコピーしました:

public function postResetPassword() {
    $credentials = array('email' => Input::get('email'));

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

        $user->save();

        return Redirect::to('/');
    });
}

しかし、 Redirect::to('/') を返すことは機能しないようです。これは、ホームページの代わりに、コントローラーメソッドが見つからないことを示すエラーが表示されるためです。しかし、このようにコードを書くと:

    $credentials = array('email' => Input::get('email'));

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

        $user->save();
    });

    return Redirect::back();

セッションフラッシュ変数を取得する方法がわかりませんが、機能します(実際に取得します)。

もう 1 つの質問は、パスワードの長さ (6 文字) に関する規則はどこに書かれているのですか? それらを変更できますか?

4

2 に答える 2

1

最初のコード例が機能しない理由に答えるには、app/routes.phpファイルを見ると、Route::get('/', 'HomeController@index');. シンボルの前の部分は@コントローラーの名前で、後の部分はルートが要求されたときにコントローラーで呼び出されるメソッドです。メソッドが定義されていることを確認してください。

以下を見た。returnステートメントとして指定するクロージャーの中にリダイレクトを配置する必要があると思います。

次に、ユーザーをリダイレクトした後にセッションにフラッシュされたデータを取得する方法は次のとおりSession::get('key');です。

最後の質問については、次のドキュメントをご覧ください。

例:

$validator = Validator::make(
            array('email' => Input::get('email'), 'password' => Input::get('password'), 'password_confirm' => Input::get('password_confirm')),
            array('email' => 'required|unique:users,email|email', 'password' => 'required|min:3|max:20|same:password_confirm')
        );

渡される 2 番目の配列は、バリデーターのルールを変更できる場所です。

于 2013-07-15T20:24:37.657 に答える
0

パスワード検証のルールの変更に関する 2 番目の質問に答えるには。

PasswordBroker.php208 行目にこの機能を持つPassword ファサードが拡張されます。

/**
 * Set a custom password validator.
 *
 * @param  \Closure  $callback
 * @return void
 */
public function validator(Closure $callback)
{
    $this->passwordValidator = $callback;
}

したがって、デフォルトのパスワードバリデーターをオーバーライドするには、コントローラーから次の呼び出しを行うだけです。

Password::validator(function(){ 
    //validator in here 
});
于 2015-05-18T13:24:35.913 に答える