Yii プロジェクトで AJAX 登録フォームを作成したいと考えています。したがって、すべてのページにログインボタンがあり、ユーザーが承認されていない場合にポップアップが表示されます。そのポップアップで、彼は電子メール フィールド、パスワード フィールド、および CAPTCHA (デフォルトの Yii キャプチャ) を含む登録フォームを見ることができます。
したがって、ユーザー登録のモデルは User です。検証規則があります。
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,
))
そして、ここに問題があります:(すべてのページに表示できるポップアップ内にある (たとえば、メインコントローラーに属するインデックスページ) captcha は、そのコントローラーから (/user ではなく /main/captcha から) 画像をロードしたい/キャプチャ)。
すべてのコントローラーにキャプチャを追加するのは悪い考えなので、追加しました
'captchaAction' => '/user/captcha',
しかし、その後、キャプチャはURLからロードしたい
http://site.loc/user/captcha/v/4fe99aca1bbed
ユーザーフレンドリーな URL のキャプチャがクラッシュし、私はそれを避けることができません (私は、yii の専門家ではないと思いますが、これは共通のパス構成が原因です)。
これを解決する簡単な解決策はありますか?URL を修復するか、CAPTCHA を再構成する必要がありますか?