3

アカウントの作成、ログイン、ログアウトの手順を実行できるユーザー システムがあります。

私は現在、氏名、ユーザー名などを編集できるプロファイルの編集に取り組んでいます。
この手順では、パスワードを必要としないようにしたいと思いますが、作成とログインの手順ではパスワードを要求する必要があります。

Laravelでこれをサポートする方法はありますか?

Input::get('password') の存在を検出することを考えました。そうでない場合は、元のパスワードを通過しますが、これは再ハッシュされます

したがって、要約すると、更新手順ではなく、作成時にパスワードフィールドを必須にしたいと思います。あるいは、同じ目的を達成する別の方法があれば、私はそれを受け入れます.

参考までに、保存手順内で検証を処理するJeffreyWay/Laravel-Model-Validatorsを使用しています。

4

1 に答える 1

4

おそらく、このパッケージを使用してこれを行うことはできません。ただし、そのような機能を手動で作成することもできます。たとえば、Userクラスの一部として、検証に必要なフィールドを選択する 2 つのメソッドを作成します。

protected static $rules
    = [
        'name'            => 'required|min:3|max:60',          
        'password'        => [
            'required',
            'min:10'
        ],

    ];


public static function validateRegistration($data, $translation)
{
    return self::validate($data, $translation);
}

public static function validateUpdate($data, $translation)
{

    $rules = self::$rules;
    if (trim($data['password']) == '') {
        unset($rules['password']); // unsetting unwanted password rule
    }
    return self::validate($data, $translation, $rules);
}

public static function validate($data, $translation, $rules = null) 
{
    if (is_null($rules)) {
        $rules = self::$rules;
    }

    $v = Validator::make($data, $rules, $translation);

    if ($v->fails()) {
        self::$errors = $v->messages()->toArray();
        return false;
    }

    return true;
}
于 2014-10-15T22:19:44.087 に答える