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.