Formulario de Login em um Widget

Boa noite Pessoal, estou com um pequeno problema, estou desenvolvendo um site que tem um barra lateral do lado direto que tem o formulario de login que carregara em todas as paginas.

Desenvolvi um widget para isso.

So que estou com problema na validação do formulario nao retorna nenhum erro. Alguem poderia me ajudar. Como validar um form dentro de um widget.

Meu codigo:

sidebar.php




<div id="coluna-direita">

    <div class="box-menor-dois">

        <h2 class="titulo">Seu Espaço</h2>

         <?php $form=$this->beginWidget('CActiveForm', array(

                    'id'=>'login-form',

                    'enableAjaxValidation'=>false,


            )); ?>

                <?php  echo $form->errorSummary($model); ?>

               <ul class="hvv">

                   <li>

                       <div class="campo">

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

                            <?php echo $form->textField($model,'email',array('class'=>'tres-quinto')); ?>

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

                       </div>

                   </li>


                   <li>

                       <div class="campo">

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

                            <?php echo $form->passwordField($model,'password', array('class'=>'dois-quinto')); ?>                           

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

                                                       

                       </div>

                   </li>

                   <li>

                       <div class="campo">                         

                           <button type="submit" class="btn btn-primary btnlogin">Continuar <i class="icon-chevron-right icon-white"></i></button>

                       </div>

                   </li>

                   <li>

                       <div class="campo">

                           <a href="#modal" class="floatLeft" data-toggle="modal">Esqueceu sua Senha?</a>

                      </div>

                   </li>

               </ul>

    <?php $this->endWidget(); ?>

    </div>

    <div class="box-conteudo-menor">

        <img src="images/img-facebook.jpg" width="290" height="250" alt="img-facebook"/>


    </div>

    <div class="box-conteudo-menor">

        <img src="images/img-twitter.jpg" width="290" height="330" alt="img-twitter"/>


    </div>

</div>




ColunaDireita.php




<?php

 class ColunaDireita extends CWidget{     

     

     public function run(){

         $model = new LoginForm;         

         $this->render('sidebar', array('model'=>$model));

     }

     

 }

?>



E no controller da homeController eu faço a autenticaçao:





 $model = new LoginForm;  

                if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')

		{

			echo CActiveForm::validate($model);

			Yii::app()->end();

		}

             

                if(isset($_POST['LoginForm'])){

                        $model->attributes=$_POST['LoginForm'];

                                           

                        if($model->validate() && $model->login()){

                            if($_GET['redirect'] == 'finalizarcompra'){

                                $this->redirect('/carrinho/entrega');                                

                            }else{

                                if(Yii::app()->user->isAdmin){

                                    $this->redirect('/sisadm/home');

                                }else{

                                    $this->redirect('/seuespaco/index');

                                }

                            }

                            

                        }

                }



na view da home estou chamando o widget




<?php $this->widget('application.views.widgets.ColunaDireita'); ?>



valew

A validação costuma ficar dentro de dos models, posta o código do models/LoginForm ai pra gente ver. Poder ser na function rules() o problema.

// EDIT

Chegou a testar rodar a view direto do controller, pra ver como se comporta?

A validaçao do model esta ok… O meu problema é que este form esta em um widget… se ele tive na view funcionaria normalmente pois usa ele em diverso sistema assim e funciona legal.

So que neste caso tive que colocar este form login no widget ai vem o problema ele nao mostra os erros de validaçao… Mais se tudo estiver correto ele logo normalmente…

O meu problema mostrar os erros.

Valew

Resolvido!!! valews

Depois fala qual era o problema e como resolveu, assim quando alguém precisar já tem onde procurar.

;D

2

Uma vez resolvi um problema parecido mais não foi com login e sim com campos de cadastro de newsletter que precisava ficar no layout.php, ai fiz com widget mesmo!

Ahe galera eu consegui resolver sa seguinte maneira. Eu faço a validaçao do proprio widget:

Segue:




 class ColunaDireita extends CWidget{     

     

     public function run(){

         $model = new LoginForm;  

         $controller=$this->getController();


        if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')

        {

                echo CActiveForm::validate($model);

                Yii::app()->end();

        }


        if(isset($_POST['LoginForm'])){

                $model->attributes=$_POST['LoginForm'];


                if($model->validate() && $model->login()){

                        if(Yii::app()->user->isAdmin){

                            $controller->redirect('/sisadm/home');

                        }else{

                            $controller->redirect('/');

                        }

                    


                }

        }        

         $this->render('sidebar', array('model'=>$model));

     }

     

 }



Abs