首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 4- Ardent -密码确认不匹配

Laravel 4- Ardent -密码确认不匹配
EN

Stack Overflow用户
提问于 2014-03-29 01:49:47
回答 6查看 9.6K关注 0票数 3

因此,我正在致力于在Laravel 4中实现Ardent,并且我似乎无法理清为什么这个密码确认不能匹配。

我的用户控制器如下所示:

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

然后,在模型存储操作中,我有以下内容:

代码语言:javascript
复制
$user = new User(Input::all());
if($user->save()) {
  // does a bunch of stuff
}

但最终密码确认警告是持久的,我似乎无法理清原因?如果我将确认选项从密码字段中删除,那么所有操作都很好。我似乎无法让他们明白他们是一样的。我在下面包含了一个示例var_dump,我已经测试了它,并确认它没有通过验证。

代码语言:javascript
复制
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" 
}

在保存之前,我正在对自己的密码进行散列,但为了解决这个问题,我暂时删除了它。

如有任何建议或指导或指导,将不胜感激。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-03-31 17:07:16

因此,事实证明,我已经找到了解决这个问题的办法。

具有讽刺意味的是,为了使pasword_confirmation上的验证能够查看并运行验证,需要在模型上设置为可填充的。

非常简单的解决方案,尽管没有真正的文档化,因为如果数据库中没有可填充数组的字段,为什么要在模型的可填充数组中添加一个变量。

票数 2
EN

Stack Overflow用户

发布于 2014-03-30 16:16:48

也许密码在保存前就已经过了.

检查热心的医生:

代码语言:javascript
复制
Route::post('register', function() {
        $rules = array(
            'name'                  => 'required|min:3|max:80|alpha_dash',
            'email'                 => 'required|between:3,64|email|unique:users',
            'password'              => 'required|alpha_num|between:4,8|confirmed',
            'password_confirmation' => 'required|alpha_num|between:4,8'
        );

        $validator = Validator::make(Input::all(), $rules);

        if ($validator->passes()) {
            User::create(array(
                    'name'     => Input::get('name'),
                    'email'    => Input::get('email'),
                    'password' => Hash::make(Input::get('password'))
                ));

            return Redirect::to('/')->with('message', 'Thanks for registering!');
        } else {
            return Redirect::to('/')->withErrors($validator->getMessages());
        }
    }
);

‘密码’=>‘所需的\

'password_confirmation‘=>’必须在:4,8‘,之间

票数 5
EN

Stack Overflow用户

发布于 2014-08-22 14:42:37

不需要"password_confirm“在可填充数组中,我有以下规则。

代码语言:javascript
复制
'old_password' => 'required|alphaNum|between:6,16',
'new_password' => 'required|alphaNum|between:6,16|confirmed',
'new_password_confirmation' => 'required|alpha_num|between:4,8'

在视图中,我有三个名称相同的字段:

old_password

new_password

new_password_confirmation

对我来说是正常的。

被验证的字段必须有一个匹配的foo_confirmation字段。例如,如果被验证的字段是密码,则必须在输入中显示一个匹配的password_confirmation字段。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22725993

复制
相关文章

相似问题

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