selectmultiple en kumbiaphp v1.0 beta2

edited junio 2012 in Principiantes
hola.
intento listar cuantos perfiles tiene un usuario para eso utilizo un select left join probe el select directo en el SQL y funciona bien lista lo que debe listar ,
pero al ejecutar no me muestra datos y muestra un mensaje de error
es la version 1.0 beta 2 del kumbia

controlado:personas_controller.php

<?php
Load::models('personas','proyectos');

class PersonasController extends AppController {

public $model = 'proyectos_personas';
public function tabs_persona($id) {
    
            $id = Filter::get($id, 'digits');
            $persona = new Personas();
            $this->persona = $persona->obtener_personas_por_perfiles($id);
    
    }
}
?>

modelo personas.php

<?php
class Personas extends ActiveRecord {
public function obtener_personas_por_perfil($id) {
        $select = "f.nombre";
        $from = "perfiles_personas as pp";
        $joins = "LEFT JOIN perfiles as f on f.id = pp.perfiles_id ";
        $joins .= "LEFT JOIN personas as p on p.id = pp.personas_id ";
        $condiciones = "p.id = '$id'";
        return $this->find_all_by_sql("SELECT $select FROM $from $joins WHERE $condiciones");
    }
}
?>

mesaje de error:

Notice: Trying to get property of non-object in C:\wamp\www\cumbia\default\app\extensions\helpers\table.php on line 154

Comentarios

  • podrias colocar el código de la vista ? ya que el helper table se usa en la vista, y allí es donde esta dando el error, gracias :-)
  • el codigo de la vista es ::
    tabs_persona.phtml
    <div id="scaffold">
        <h1>Roles de la Persona</h1>
        <div id="mensajes_flash" >       
            <?php View::content() ?>
        </div>
    <?php
    Table::headers('id', 'Rut', 'Nombre', 'Apellido P.', 'Apellido M.','Telefono','Celular','Correo Electronico','Cargo','Fecha de Nacimiento');
    Table::fields('id','rut','nombre','apaterno','amaterno','telefono','celular','email','cargo','fec_nac');
    echo Table::create(array($persona));
    ?>
    </div>

    <div class="actions">
     <?php echo Html::linkAction('', 'Volver', 'class="btn right"') ?>
     </div>
    </br>



    probe modificando en el controller de la sgte manera :


    <?php
    Load::models('personas','proyectos');

    class PersonasController extends AppController {

    public $model = 'proyectos_personas';
    public function tabs_persona($id) {
                 try {
                $persona = new Personas();
                $this->persona = $persona->obtener_personas_por_perfil($id); //obtener_personas_por_perfil($id);
                 } catch (KumbiaException $e) {
                View::excepcion($e);
            }
        }
    }
    ?>

    el mensaje de error de devuelve es :
    ( ! ) Notice: Trying to get property of non-object in C:\wamp\www\cumbia\default\app\extensions\helpers\table.php on line 154

  • echo Table::create(array($persona)); //esto está mal. debe ser:

    echo Table::create($persona); //ya que $persona deberia ser una array con el resultado de la consulta.
  • hola.
    gracias por contestar me ayudaste , hice el cambio que sugeriste y bien .
    Pero el resultado sale en la columna Nombre de table::fields, cuando deveria mostrarlo en tabs o pestañitas
    a que se deve?

    <div id="scaffold">
        <h1>Roles de la Persona</h1>
        <div id="mensajes_flash" >       
            <?php View::content() ?>
        </div>
    <?php
    Table::headers('id', 'Rut', 'Nombre', 'Apellido P.', 'Apellido M.','Telefono','Celular','Correo Electronico','Cargo','Fecha de Nacimiento');
    Table::fields('id','rut','nombre','apaterno','amaterno','telefono','celular','email','cargo','fec_nac');
    echo Table::create($persona);
    ?>
    </div>


  • mmmm no entendi, el helper table es para listar tablas, no tabs...
  • gracias por responder, deseo mostrar el resultado de un select pero no como texto sino como titulo de las pestañas.



    helpers:



    <?php



    class Tabs{  



        public static function open($data){



            static $sw = true;



            $code = '';



            if($sw){



                $code = self::js();



                $sw=false;



            }



            $code .= '<div class="demo">'.PHP_EOL;



            $code .= '<div id="tabs">'.PHP_EOL;



            $code .= '<ul>'.PHP_EOL;



            foreach($data as $key => $value){



                $code .= '<li><a href="#tabs-' . $key . '">' . $value['titulo'] . '</a></li>'.PHP_EOL;



            }



            $code .= '</ul>'.PHP_EOL;



            foreach($data as $key => $value){



                $code .= '<div id="tabs-' . $key . '">'.PHP_EOL;



            ob_start();



            $code .=  ob_get_clean().PHP_EOL;



                $code .= '</div>'.PHP_EOL;



            }



            $code .= '</div>'.PHP_EOL;



            $code .= '</div>'.PHP_EOL;



            return $code;



        }



        private static function js(){



            $code = '';



            $code .=   tag::js('jquery/ui/jquery.ui.widget');



            $code .=   tag::js('jquery/ui/jquery.ui.tabs');



            $code .= '<script type="text/javascript">'.PHP_EOL;



            $code .= '$(function() {'.PHP_EOL;



            $code .= '$("#tabs").tabs();'.PHP_EOL;



            $code .= '});'.PHP_EOL;



            $code .= '</script>'.PHP_EOL;



            return $code;



        }     



    }



    ?>




  • Views




    <?php




        View::helpers('tabs');




           




        $tabs[] = array('titulo' => '?');                                           




        $tabs[] = array('titulo' => '?');                             




         $tabs[] = array('titulo' => '?');  




         echo Tabs::open($tabs);      




    ?>




    el select esta probado directo en el sql y devuelve (Estudiante,Tutor,Coordinador) Where $id
  • mi recomendación es que si no te esta funcionando con el helper Tabs, lo hagas manualmente, crea tus tabs haciendo un foreach a tu array y dibujando el html a tu gusto, así no te complicas...

    Saludos...!!!
  • no es no me funcione con el helper sino que nose como hacer la llamada debido a mi poca experiencia en Kumbiaphp; ensaye esta forma pero en el tab aparece la palabra Array como titulo , cuando deberia aparecer tantos perfiles como tenga registrados en la basedatos

    Views:
    <?php
        View::helpers('tabs');
        $tabs[] = array('titulo' => $persona);
         echo Tabs::open($tabs);      
    ?>


  • por eso digo que si no esta funcionando con el helper, lo mejor es que lo hagas a mano, ya que al parecer los que estamos por acá por el foro no conocemos ó hemos usado dicho helper, y no podemos ayudarte por la misma razon...
  • edited junio 2012
    :(
Sign In or Register to comment.