首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel ( Ardent )密码确认工作用于保存,而不是更新

Laravel ( Ardent )密码确认工作用于保存,而不是更新
EN

Stack Overflow用户
提问于 2014-03-07 18:01:41
回答 1查看 1.5K关注 0票数 0

我知道有很多类似的问题,但我不能用任何解决方案来解决我的问题。

我使用Laravel和Confide,它使用Ardent来验证。

我在保存用户方面没有任何问题,当password_confirmation插入到数据库时(应该是这样),就会删除它,并且正确地插入用户。

当试图更新用户时,问题就出现了。如果我试图验证用户,就会得到一个错误,该用户并不是唯一的:

代码语言:javascript
复制
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 (所以在插入之前它不会删除它)。

代码语言:javascript
复制
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 =真;

代码语言:javascript
复制
public $forceEntityHydrationFromInput = false;
public $autoHydrateEntityFromInput = false;

正如我在Laravel/Ardent/User model editing + saving中看到的那样,它也不起作用。提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 10:06:38

好的,我得到一个错误的原因是因为我同时使用了updateUniques()和save()。这样做是可行的:

代码语言:javascript
复制
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!!');
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22257413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档