我想在我的 Yii 项目上创建一个 AJAX 注册表单。所以在每个页面上我都有一个登录按钮,如果用户没有被授权,它会显示一个弹出窗口。在该弹出窗口中,他可以看到带有电子邮件字段、密码字段和验证码(默认 Yii 验证码)的注册表单。
所以,我的用户注册模型是用户。有一个验证规则:
array('code', 'captcha', 'allowEmpty'=>!Yii::app()->user->isGuest),
我的控制器(所有用户的操作都在其中)是用户(url:site.url/user/),我在那里添加了验证码操作:
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF,
'foreColor'=>0x000000,
),
在我的下一个代码中:
$this->widget('CCaptcha', array(
'clickableImage' => true,
'showRefreshButton' => false,
))
这里有一个问题:(在一个弹出窗口中,它可以显示在每个页面(例如索引页面,属于主控制器)验证码想要从该控制器加载图像(来自 /main/captcha,而不是 /user /验证码)。
在每个控制器中添加验证码是个坏主意,所以我添加了
'captchaAction' => '/user/captcha',
但在那之后验证码想从一个网址加载
http://site.loc/user/captcha/v/4fe99aca1bbed
用户友好的 url 的验证码崩溃了,我无法避免(我认为,不是 yii 专家,这是因为常见的路径配置)。
有没有简单的解决方案来解决这个问题?我应该修复 URL 还是重新配置 CAPTCHA?