yii验证码不会显示在视图中

时间:2013-12-13 17:10:51

标签: yii

我正在尝试在我的注册页面上显示验证码,但由于某种原因它不会显示。我正在使用YiiSkeletonApp

在我看来

   echo $form->captchaRow($model,'verify',array('class' => 'input-block-level',
            'hint'=>'<i class="muted">Letters are not case-sensitive.</i>',
        ));

在我的 models / user.php 中,我有这个

public function rules() {
return array(
array('verify', 'captcha', 'allowEmpty' => !CCaptcha::checkRequirements(), 'on' => 'register, forgotPassword'),
);

和我的 controllers / UserController.php

public function accessRules() {
        return array(
            // Actions: index, create, update, password, newPassword, forgotPassword, delete
            array('allow',
                'actions' => array('captcha', 'create', 'forgotPassword', 'newPassword'),
                'expression' => 'app()->user->isGuest()',
            ),
            array('allow',
                'actions' => array('password', 'update'),
                'users' => array('@'),
            ),
            array('allow',
                'actions' => array('index', 'create', 'register', 'delete'),
                'expression' => 'app()->user->isAdmin()',
            ),
            array('deny',
                'users' => array('*'),
            ),
        );
    }

2 个答案:

答案 0 :(得分:1)

CCaptcha要求安装gd extension。如果不存在,验证码将不会显示。

答案 1 :(得分:0)

在您的控制器中,在操作中定义它:

public function actions()
    {
        return array(
            // captcha action renders the CAPTCHA image displayed on the contact page
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                'backColor'=>0xFFFFFF,
            ),

        );
    }

现在应该可以了。