【问题标题】:Laravel Confide ( Ardent )password confirmation works on save but not on updateLaravel Confide ( Ardent ) 密码确认在保存时有效,但在更新时无效
【发布时间】:2014-04-11 00:46:54
【问题描述】:

我知道有很多关于类似问题的问题,但我无法为我的问题应用任何解决方案。

我正在使用带有 Confide 的 Laravel,它使用 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() (正如我在 SO 中的另一个问题中看到的那样作为一种可能的解决方案),它不会抱怨唯一性,而是抱怨数据库中不存在密码确认(所以它是不要在插入之前将其移除)。

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 = true;

public $forceEntityHydrationFromInput = false;
public $autoHydrateEntityFromInput = false;

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

【问题讨论】:

    标签: php validation laravel ardent


    【解决方案1】:

    好的,原来我收到错误的原因是因为我同时使用了 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!!');
            }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-27
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      相关资源
      最近更新 更多