我只是yii 2.0框架的新手。我已经设置了yii2.0高级应用程序。我正在尝试在后端实现验证码。有人帮我看下面文件框架中的联系页面文件:
@前端/控制器/ SiteController.php 特别是"行动()"方法和" actionContact()"方法
@frontend/models/ContactForm.php
@frontend/views/site/contact.php
所以我在下面的文件中复制了以下代码:
@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>',
]);
?>
@common/models/adminlogin.php
extend model class public $verifyCode;
在公共职能规则()
中声明['verifyCode', 'captcha'],
和
public function attributeLabels()
{
return [
'verifyCode' => 'Verification Code',
];
}
@backend/controllers/sitecontroller.php
在函数下面声明
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
现在问题是验证码出现在登录页面上,但验证码的iamge没有出现,甚至提示我输入验证码但没有验证码图像的错误。
答案 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;
?>