验证码图像未在YII 2.0后端加载

时间:2016-06-17 05:03:13

标签: php yii2 captcha backend

我只是yii 2.0框架的新手。我已经设置了yii2.0高级应用程序。我正在尝试在后端实现验证码。有人帮我看下面文件框架中的联系页面文件:

  1. @前端/控制器/ SiteController.php 特别是"行动()"方法和" actionContact()"方法

  2. @frontend/models/ContactForm.php

  3. @frontend/views/site/contact.php
  4. 所以我在下面的文件中复制了以下代码:

    1. @backend/views/sitelogin.php

      <?= $form->field($model, 'verifyCode')
             ->widget(Captcha::className(), [
             'template' => '<div class="row">
                <div class="col-lg-3">{image}</div>
                <div class="col-lg-6">{input}</div></div>',
           ]);
      ?>
      
    2. @common/models/adminlogin.php

      extend model class public $verifyCode;
      

      在公共职能规则()

      中声明
      ['verifyCode', 'captcha'],
      
    3. public function attributeLabels()
          {
              return [
                  'verifyCode' => 'Verification Code',
              ];
          }
      
      1. @backend/controllers/sitecontroller.php 在函数下面声明

          'captcha' => [
                    'class' => 'yii\captcha\CaptchaAction',
                    'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                ],
        
      2. 现在问题是验证码出现在登录页面上,但验证码的iamge没有出现,甚至提示我输入验证码但没有验证码图像的错误。

1 个答案:

答案 0 :(得分:0)

试试这个

在后端/ site / login.php中  替换:

<?= 
    $form->field($model, 'verifyCode')->widget(Captcha::className(), [
    'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',]) 
?>

使用:

<?php 
    $tag = $form->field($model, 'verifyCode')->widget(Captcha::className(), [
                'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',]); 
    $tag = preg_replace('/backend/', 'frontend', $tag); 
    echo $tag;
?>