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',
);