Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

se puede tener 2 set en cakephp????

Estas en el tema de se puede tener 2 set en cakephp???? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. lo que necesito es que un set; almacene todo los datos sin excepcion; y otro que almacene los datos pero agrupados; lo estoy intentando de ...
  #1 (permalink)  
Antiguo 23/07/2013, 16:46
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 15 años, 4 meses
Puntos: 2
Exclamación se puede tener 2 set en cakephp????

lo que necesito es que un set; almacene todo los datos sin excepcion; y otro que almacene los datos pero agrupados; lo estoy intentando de la siguiente manera:
--esto en mi controlador--
Código PHP:
function rios() {
        
$this->Mrio->recursive 1;
        
$this->set('mrios'$this->Mrio->find('all'));
        
$this->set('mrios2'$this->Mrio->find('list',array('fields'=>array('Mrio.id','Mrio.cuenca','Mrio.location_id'))));    
    } 
--y esto en mi ctp--
Código PHP:
<?php echo $html->css('main'); ?>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<?php
    $informacion0
=array();
    
$lugar=array('Lugar','cuenca -a','cuenca -b','jequetepe');
    
$periodo1=array('Periodo-2012');
    
$periodo2=array('Periodo-2013');
    
    
//para lugar
        /*foreach ($mrios as $mrio):
            $lugar[]=$mrio['Mrio']['cuenca'];
        endforeach;*/
    //para periodos
        
foreach ($mrios as $mrio):
            if(
$mrio['Mrio']['periodo'] == '2012')
                {
                    
$periodo1[] = (double)$mrio['Mrio']['mc'];
                }
            else if (
$mrio['Mrio']['periodo'] == '2013')
                {
                    
$periodo2[] = (double)$mrio['Mrio']['mc'];
                }
        endforeach;
    
//para normal
        
$informacionjson_encode(array($lugar,$periodo1,$periodo2));
        
pr ($informacion);
       
// aca intento usar el otro set
        
foreach ($mrios2 as $mrio):
            
pr ($mrio['Mrio']['cuenca']);
        endforeach;
?>
pero al intentar usar el 2do set me indica que Mrio no esta declarado.
No se que hacer..
  #2 (permalink)  
Antiguo 24/07/2013, 04:35
 
Fecha de Ingreso: abril-2013
Mensajes: 61
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: se puede tener 2 set en cakephp????

Claro que se puede, en principio tantos como quieras.

Prueba a poner esta linea en la vista.

Código PHP:
debug($mrios2); 

yo creo que el metodo find('list'), no esta funcionando como tu esperas que funcione.

Última edición por nanotk58; 24/07/2013 a las 04:57
  #3 (permalink)  
Antiguo 24/07/2013, 08:58
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 15 años, 4 meses
Puntos: 2
Exclamación Respuesta: se puede tener 2 set en cakephp????

tuve q trabajar con el all para que funcione; este codigo ya ejecuta; pero aun quisiera cambiarlo; lo primero es que; el campo de media aparezca para cada año; ahora esos graficos son de fechas diarias; entonces no se como podria modificar eso:
Código PHP:
<!--
 * Archivo:         rios.ctp
 * Función:         vista de boletines
 * Institución:     I+D Consultores
 * Proyecto:        Sistema de Informaciön de Inteligencia de Negocios
 * Dependencias:    clients_controller.php
 * Programador:     Frank Tapia
 * Creacion:        2013/07/18
 * Modificación:    2013/007/18
-->

<?php echo $html->css('main'); ?>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<?php
    $informacion0
=array();
    
$lugar=array('Lugar');
    
$periodo1=array('Periodo-2012');
    
$periodo2=array('Periodo-2013');
    
$media=array('media');
    
    
//para lugar
        
foreach ($mrios2 as $mrio2):
            
$lugar[]=$mrio2['Mrio']['cuenca'];
        endforeach;
        
    
//para periodos
        
foreach ($mrios as $mrio):
            if(
$mrio['Mrio']['periodo'] == '2012')
                {
                    
$periodo1[] = (double)$mrio['Mrio']['mc'];
                }
            else if (
$mrio['Mrio']['periodo'] == '2013')
                {
                    
$periodo2[] = (double)$mrio['Mrio']['mc'];
                    
$media[]=(double)$mrio['Mrio']['promedio'];
                }
        endforeach;
        
        
$informacionjson_encode(array($lugar,$media,$periodo1,$periodo2));
?>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(dibujarGrafico);
          function dibujarGrafico() {
            var data = google.visualization.arrayToDataTable(<?php echo $informacion?>);

            var options = {
              title: 'Caudal de rios periodo 2012 a 2013',
              hAxis: {title: 'Periodo-Normal', titleTextStyle: {color: 'green'}},
              vAxis: {title: 'Metros Cubicos', titleTextStyle: {color: '#FF0000'}},
              backgroundColor:'#ffffcc',
              legend:{position: 'bottom', textStyle: {color: 'blue', fontSize: 13}},
              width:900,
            height:500
            };

            var grafico = new google.visualization.ColumnChart(document.getElementById('grafica'));
            grafico.draw(data, options);
          }
    </script>

<div id="main">
  <div id="nbanner">    
            <div class="pagelogo">&nbsp;</div>    
            <div class="pagemaintitle">Agro II</div>
            <div class="pagemainsubtitle"><?php echo $html->link('Inicio''/clients/index');?> / Caudales de Rios</div>
                        
  </div>   
  <div id="maincontent">
  
     <div id="grafica"></div>
     
      <?php $bc '/bc:Inicio,index;Caudales de Rios,rios.module:AgroII';?>
        
    </div>
  #4 (permalink)  
Antiguo 24/07/2013, 09:09
 
Fecha de Ingreso: abril-2013
Mensajes: 61
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: se puede tener 2 set en cakephp????

Eso ya no es cosa del cake, sino mas bien del plugin de google, mira de donde lo descargaste que habra algun tuto o similar, saludos
  #5 (permalink)  
Antiguo 26/07/2013, 08:57
 
Fecha de Ingreso: febrero-2012
Mensajes: 37
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: se puede tener 2 set en cakephp????

Lo de poner tantos set( ) como desees, claro que se puede, intenta con cualquier variable y verás como la establece, me parece que aquí lo que sucede ( que te diga que no este declarado mrios como índice) es que te falta tomar en cuenta la manera en que regresa los datos tu find, no genera el mismo array un find all que un find list, mira la documentación:

http://book.cakephp.org/1.2/en/The-Manual/Developing-with-CakePHP/Models.html#find-all

para que veas la diferencia puedes hacer como siempre un pr()

Saludos

Etiquetas: cakephp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:09.