2

どの領域で変化するので、チェックはありましたか? 互換性繰り返しフィールドのパスワード フィールドをチェックしたくありません。

Kohana Users Controller の追加機能

public function action_add() {
        $title = 'Add User';
        $this->template->title = $title;
        $this->template->content = View::factory('action/users/add')
                ->bind('title', $title)
                ->bind('message', $message)
                ->bind('errors', $errors);

        if (HTTP_Request::POST == $this->request->method()) {
            try {

                // Create the user using form values
                $user = ORM::factory('user')->create_user($this->request->post(), array(
                    'username',
                    'password',
                    'email',
                    'last_name',
                    'first_name',
                    'middle_name'
                        ));

                // Grant user login role
                $user->add('roles', ORM::factory('role', array('name' => 'login')));

                // Reset values so form is not sticky
                $_POST = array();

                Session::instance()->set('message', "You have added user '{$user->username}' to the database");
                Request::current()->redirect('/admin/' . $this->request->param('lang') . '/action/users' );
            } catch (ORM_Validation_Exception $e) {

                // Set failure message
                $message = 'There were errors, please see form below.';

                // Set errors using custom messages
                $errors = $e->errors('models');
            }
        }
    }
4

1 に答える 1

0

ORM::create() メソッドを直接使用できると思いますが、

http://kohanaframework.org/3.3/guide-api/Model_Auth_User#create_user

ORM::create_user() が行うことは、パスワードを検証することです。スキップしたいことだけです

http://kohanaframework.org/3.3/guide-api/Model_Auth_User#create_user

したがって、次のようなものを使用する必要があります

  $user = ORM::factory('user')->values($this->request->post(), array(
                'username',
                'password',
                'email',
                'last_name',
                'first_name',
                'middle_name'
                    ))->create();

create_user の呼び出しを回避すると、パスワードの長さの検証も回避されるため、通常はこのルールをモデルに追加しますが、パスワードはハッシュを取得するため、コントローラーで処理する必要があるため、検証やフィルターを使用していないことがわかります$POST データについては、Validator オブジェクトを使用することをお勧めします

http://kohanaframework.org/3.3/guide-api/検証

それを使用すると、パスワードの長さを制限できます

于 2013-03-01T15:40:07.953 に答える