我知道有很多类似的问题,但我不能用任何解决方案来解决我的问题。
我使用Laravel和Confide,它使用Ardent来验证。
我在保存用户方面没有任何问题,当password_confirmation插入到数据库时(应该是这样),就会删除它,并且正确地插入用户。
当试图更新用户时,问题就出现了。如果我试图验证用户,就会得到一个错误,该用户并不是唯一的:
public function storeProfile()
{
$user = $this->currentUser;
$user->password = Input::get( 'password' );
$user->password_confirmation = Input::get( 'password_confirmation' );
//$user->updateUniques();
$user->save();
dd($user->errors()->all());
}
string (31) "username is not unique"
string (28) "email is not unique"如果我尝试使用$user->updateUniques() (正如我在这里的另一个问题中所看到的那样,这是一种可能的解决方案),它不会抱怨唯一性,而是抱怨DB中没有password_confirmation (所以在插入之前它不会删除它)。
public function storeProfile()
{
$user = $this->currentUser;
$user->password = Input::get( 'password' );
$user->password_confirmation = Input::get( 'password_confirmation' );
$user->updateUniques();
dd($user->errors()->all());
}
Column not found: 1054 Unknown column 'password_confirmation' in 'field list' (SQL: update `users` set `password` = y$wyNl2xMNJqL0mY4X766EfOvO.IKICyDfXckS1cas1Psj1TLwpJZWu, `updated_at` = 2014-03-07 17:13:04, `password_confirmation` = 123456 where `id` = 1) 我试过了
公共$autoPurgeRedundantAttributes =真;
public $forceEntityHydrationFromInput = false;
public $autoHydrateEntityFromInput = false;正如我在Laravel/Ardent/User model editing + saving中看到的那样,它也不起作用。提前谢谢你的帮助。
发布于 2014-03-10 10:06:38
好的,我得到一个错误的原因是因为我同时使用了updateUniques()和save()。这样做是可行的:
public function storeProfile()
{
$user = $this->currentUser;
$user->password = Input::get( 'password' );
$user->password_confirmation = Input::get( 'password_confirmation' );
$user->updateUniques();
if ( !$user->errors()->all() ){
return Redirect::action('UsuarioController@editProfile')
->with('success', 'Success!!');
}
}https://stackoverflow.com/questions/22257413
复制相似问题