Jump to content


Marcos Cabrera

Member Since 09 Sep 2013
Offline Last Active Sep 15 2013 07:42 PM
-----

Posts I've Made

In Topic: how to create a model relationing three tables?

12 September 2013 - 04:53 PM

solve the problem with this post:http://bit.ly/1en6ToD

the resulting code is this:

public function reparaciones_management()
	{
		try{
			$crud = new grocery_CRUD();
			$crud->set_theme('flexigrid');
			$crud->set_table('reparaciones');
			$crud->set_subject('reparaciones');
			$crud->required_fields('equipo_id','empleado_id','estado');
		    $crud->set_relation('equipo_id','equipos','{num_serie} tipo: {tipo} ');
			$crud->set_relation('empleado_id','empleados','nombres');
			$crud->field_type('detalles', 'text');
			$crud->columns('reparacion_id','equipo_id','empleado_id','fecha_ingreso','estado','detalles','nombres cliente');
			$crud->callback_column('nombres cliente',array($this,'getNombresClientes'));
			$output = $crud->render();
			$this->_reparacion_output($output);
			
		}catch(Exception $e){
			show_error($e->getMessage().' --- '.$e->getTraceAsString());
		}
	}
	
	function getNombresClientes($primary_key,$row) {
        $sql = "SELECT nombres
				FROM clientes
				WHERE cliente_id
				IN (
				SELECT cliente_id
				FROM equipos
				INNER JOIN reparaciones ON reparaciones.equipo_id = equipos.equipo_id where equipos.equipo_id=$row->equipo_id)";
        $result = $this->db->query($sql)->row();
        $title = $result->nombres;
        		
        return $title;
}