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
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($persona); //ya que $persona deberia ser una array con el resultado de la consulta.
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>
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;
}
}
?>
<?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
Saludos...!!!
Views:
<?php
View::helpers('tabs');
$tabs[] = array('titulo' => $persona);
echo Tabs::open($tabs);
?>