1

User モデルを検証するために ardent を使用していますが、何らかの理由で常に次の 2 つのエラーが返されます。

  • パスワード確認が一致しません。
  • パスワード確認フィールドは必須です。

私はしばらくそれで困惑していたので、助けていただければ幸いです。それは私のセットアップまたはアーデントに関係していると推測していますが、それを理解することはできません. 私の単体テストは次のテストルートにも合格しています:

Route::get('testuser', function() {
    $user                        = new User;
    $user->first_name            = 'John';
    $user->last_name             = 'Doe';
    $user->birthday              = '11/11/11/';
    $user->email                 = 'johndoe@gmail.com';
    $user->password              = 'password';
    $user->password_confirmation = 'password';

    var_dump($user->save());
});

ただし、フォーム送信時にこの方法でユーザーを作成していません。私のコントローラーアクションは次のようになります。

$user = $this->user->create(Input::all());

if ($user->save()) {
     return Redirect::route('users.index')
          ->with('flash', 'The new user has been created');
}

return Redirect::route('register.index')
     ->withInput()
     ->withErrors($user->errors());

Input::all() 配列が等しい場合:

array (
  '_token' => 'removed',
  'first_name' => 'John',
  'last_name' => 'Doe',
  'birthday' => '11/11/11',
  'email' => 'johndoe@gmail.com',
  'password' => 'password',
  'password_confirmation' => 'password',
)

そして最後に、私のユーザーモデルは次のように設定されています:

class User extends Ardent implements UserInterface, RemindableInterface {

    protected $table                     = 'users';

    protected $hidden                    = array();

    protected $fillable                  = array(
        'email',
        'first_name',
        'last_name',
        'birthday',
        'password',
        'password_confirmation'
    );

    protected $guarded                   = array('id');

    public static $passwordAttributes    = array('password');

    public $autoPurgeRedundantAttributes = true;

    public $autoHydrateEntityFromInput   = false;

    public static $rules = array(
        'email'                 => 'required|email|unique:users',
        'first_name'            => 'required',
        'last_name'             => 'required',
        'birthday'              => 'required',
        'password'              => 'required|alpha_num|min:6|confirmed',
        'password_confirmation' => 'required|alpha_num|min:8',
    );
4

0 に答える 0