そのため、Laravel 4 で Ardent の実装に取り組んでいますが、このパスワード確認が一致しない理由を整理できないようです。
ユーザーコントローラーは次のようになります。
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
use LaravelBook\Ardent\Ardent;
class User extends Ardent implements UserInterface, RemindableInterface {
public static $rules = array(
'first_name' => 'required|min:2|max:80|alpha',
'last_name' => 'required|min:2|max:80|alpha',
'email' => 'required|between:3,64|email|unique:users',
'postal_code' => 'required|min:5|max:80',
'password' => 'required|between:4,20|confirmed',
'password_confirmation' => 'same:password',
'timezone_id' => 'required|numeric',
);
public $autoPurgeRedundantAttributes = true;
次に、モデルストアアクションには次のものがあります。
$user = new User(Input::all());
if($user->save()) {
// does a bunch of stuff
}
しかし、結局、パスワード確認の警告は永続的であり、その理由を整理できないようです。パスワードフィールドから確認済みのオプションを外すと、すべてうまくいきます。同じものだと理解してもらえないようです。以下に、検証に合格しないことをテストして確認した var_dump のサンプルを含めました。
array(10) {
["_token"]=> string(40) "726lKBQgckGuLBxmJZ7Kjq4kzzXqADDqv3ZSnMOE"
["first_name"]=> string(3) "asd"
["last_name"]=> string(3) "asd"
["email"]=> string(14) "asdasd@asd.com"
["postal_code"]=> string(7) "XXX XXX"
["new_game_notification"]=> string(1) "1"
["timezone_id"]=> string(1) "5"
["password"]=> string(6) "asdasd"
["password_confirmation"]=> string(6) "asdasd"
["role"]=> string(7) "regular"
}
保存する前に独自のパスワードハッシュを行っていましたが、これを整理するために、今のところ削除しました。
提案やガイダンス/方向性は大歓迎です。