Hola Vexx, es normal que te pase eso tu funcion deberia ser algo asi:

    function filtrado($mifecha = null)
        //$mifecha = $this->data['Alumno']['mifecha']; //Si la funcion recibe 
un parametro GEP, porque asignas uno POST?
        //Suponemos que envias desde un formulario y lo envia por POST, 
entonces:
        $this->Alumno->recursive = 0;
        $this->paginate = array(
            'Caducidad' =>  array(
                  'conditions' =>  array('Caducidad.fecha' =>  
$this->data['Alumno']['mifecha'])
             )
        );
        $this->set('resul', $this->paginate());
    }



Te adjunto un buscador generico, tenes que tomar una variable de session para que el paginator funcione despues de pagina uno:

    function search(){
//$this->layout = 'sistema'; -> Acá va el layout que quieras usar!!
        $this->autoRender = false;
        if(!empty($this->data)){
$this->Session->write('Buscar', $this->data[$this->modelClass]['Buscar']);
            $this->Session->write('Accion', $this->referer());
        }
        $search = $this->Session->read('Buscar');
        $cond ="";
        $i=0;
        foreach($this->{$this->modelClass}->_schema as $field => $value){
            //debug($field);
            if($i>0){
                $cond = $cond. " OR ";
            }
$cond = $cond. " ".$this->modelClass.".".$field." LIKE '%".$search."%' ";
            $i++;
        }
        $conditions = array('limit'=> 10, 'conditions' => $cond);
        $this->paginate = $conditions;
        $this->set(strtolower($this->name), $this->paginate());
        $this->render('index');
    }

    function restablecer_search() {
        $this->Session->write('Buscar', '');
        $accion = $this->Session->read('Accion');
        $this->Session->write('Accion', '');
        if ($accion != '') {
            $this->redirect($accion);
        } else {
            $this->redirect($this->referer());
        }
    }

//Esto lo reemplazas por el texto que dice Viendo tantas paginas de bla bla bla
<p>
<?php
echo $form->create('', array('action'=>'search', 'style' => 'margin: 0 0 0 25px;'));
                echo $form->input('Buscar', array('type'=>'text'));
echo $this->Html->link('Restablecer', array('action' => 'restablecer_search'));
                echo $form->end('Buscar');
                ?>
</p>

Saludos!!!


El 15/02/12 21:32, Vexx escribió:
Tengo una vista fecha que me pide una fecha y ejecuta la funcion
filtrar, el problema es que no me filtra nada.
Aqui os dejo el codigo haber si me podeis hechar una mano.

Graciñas anticipadas.

Controlador
     function fecha() {
         $this->Alumno->recursive = 0;

     }

     function filtrado($mifecha = null) {
         $resul = null;
         $mifecha = $this->data['Alumno']['mifecha'];
         $this->Alumno->recursive = 0;
         $resul = $this->Alumno->findAllByCaducidad($mifecha);
         $this->set('resul', $this->paginate());
     }

Vista filtrado.ctp
<div class="actions">
     <ul>
         <li><a href="/adr/">Menu principal</a></li>
     </ul>
</div>
<div class="fecha form">

     <?php echo $this->Form->create('Alumno', array('action' =>
'filtrado')); ?>
     <fieldset>
         <legend><?php __('Fecha de filtrado'); ?></legend>
         <?php
         echo $this->Form->input('mifecha',
array('default'=>'05/06/2011'));
         ?>
     </fieldset>
     <?php echo $this->Form->end(__('Aceptar', true)); ?>
</div>


--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a