Obsługa kilku kontrolerów na stronie


(Maciej Bogucki) #1

Hi grupowicze!!!

Proszę o pomoc. Szukam rozwiązania od dłuższego czasu.

Wstawiłem w szablonie strony ‘protected/views/layouts/main.php’ formularz pod warunkiem braku zalogowania.




<?php if(Yii::app()->user->isGuest) : ?>

	<?php $modelForm = new UserLoginRegistryForm; ?>

	<?php $modelForm->scenario = 'login'; ?>

	<?php $this->renderPartial('/user/_login', array('model' => $modelForm)); ?>

<?php endif; ?>



Problem polega na tym, że w wersji rejestracji formularz zawiera captche obsługiwaną ajax’owo. Submit jest podpięty do obsługującego formularz kontrolera ale jak podpiąć captche do tego kontrolera?

Chaptcha jest wywołana standardowym:




<?php if(CCaptcha::checkRequirements()): ?>

	<div class="row">

		<?php echo $form->labelEx($model, 'verifyCode'); ?>

		<div><?php $this->widget('CCaptcha'); ?></div>

		<div><?php echo $form->textField($model, 'verifyCode'); ?></div>

		<div class="hint">Please enter the letters as they are shown in the image above.<br/>Letters are not case-sensitive.</div>

		<?php echo $form->error($model, 'verifyCode'); ?>

	</div>

<?php endif; ?>



Dziękuję za pomoc.


(Maciej Bogucki) #2

Rozwiązanie:




<div><?php $this->widget('CCaptcha', array('captchaAction' => '//user/captcha')); ?></div>




#3

Powinieneś zamykać takie konstrukcje w widgety. Tworzenie modelu w widoku to bardzo zły znak…