0% encontró este documento útil (0 votos)
51 vistas7 páginas

Pasos CodeIgnater

El documento describe los pasos para acceder a datos en una aplicación CodeIgniter. Explica cómo configurar la conexión a la base de datos, crear modelos para realizar operaciones CRUD, y crear un controlador para cargar vistas e interactuar con los modelos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
51 vistas7 páginas

Pasos CodeIgnater

El documento describe los pasos para acceder a datos en una aplicación CodeIgniter. Explica cómo configurar la conexión a la base de datos, crear modelos para realizar operaciones CRUD, y crear un controlador para cargar vistas e interactuar con los modelos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

Pasos CodeIgnater

martes, 21 de septiembre de 2021 10:15

cd xampp/htdocs/guia04_ACCESO_A_DATOS
code .

ACCESO A DATOS CON CODEIGNITER


El Acceso a datos en CodeIgniter se encuentra basado en un patrón denominado ActiveRecord
que permite poseer una capa extra a la sección de abstracción de clases habitual. Esta nueva
capa proporciona un API para realizar las operaciones típicas con la base de datos, tales como
consultas, inserciones, modificaciones y borrados, sin necesidad de escribir ni una línea de SQL.
La capa Active Record se encargará de ello por nosotros, generando código SQL sintácticamente
correcto y adaptado al gestor de bases de datos que estemos utilizando en nuestroproyecto.
CONFIGURANDO LA CONEXIÓN A LA BASE DE DATOS.
Primero que nada, ejecutamos el script de la BD que está asociado a esta guía, el archivo
bd.sql, luego procedemos a modificar el archivo database.php ubicado en la carpeta config.
Modificamos la sección que nos interesa, y nos debe quedar así:

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'estudiantes',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

Los datos más importantes para nuestro caso son hostname, username, password, y
database. Estos datos dependerán de cada caso, para el nuestro aplica sin problemas.
CONFIGURANDO LA URL BASE.
Accedemos al archivo llamado config.php de la carpeta config, y modificamos el índice
base_url, y nos debe quedar así:

$config['base_url'] = 'http://localhost/guia04
_ACCESO_A_DATOS/';

MOVILES página 1
_ACCESO_A_DATOS/';

Donde guia4 es el nombre de nuestra aplicación. Dependerá de cada caso, así se definirá esa
sección.
CARGANDO LA CONEXIÓN A LA BD EN TODA LA APLICACIÓN.
Para ello accedemos al archivo autoload.php de la carpeta config, modificamos el índice
libraries y nos debe quedar así:

$autoload['libraries'] = array("database");

Con eso la conexión de la Base de Datos estará disponible en toda la aplicación.


CREACIÓN DEL MODELO
En lugar de escribir operaciones de base de datos directamente en el controlador, las consultas
deberían ubicarse en un modelo, para que se puedan reusar más tarde con facilidad. Los
modelos son el lugar donde se devuelve, inserta y actualiza la información de la base de datos u
otros almacenamientos.
Creamos el modelo llamado Estudiante_model.php, en la carpeta models, y nos debe quedar
así:

<?php
defined('BASEPATH') or exit('No direct script access allowed
');
class EstudiantesModel extends CI_Model
{
public function construct()
{
parent::__construct();
}
public function getAll()
{
$query = $this->db->get("estudiantes");
$records = $query->result();
return $records;
}
public function insert($data)
{
$this->db->insert("estudiantes", $data);
$rows = $this->db->affected_rows();
return $rows;
}
public function delete($id)
{
if ($this->db->
delete("estudiantes", "idestudiante='" . $id . "'")) {
return true;
}
}
public function getById($id)

MOVILES página 2
public function getById($id)
{
return $this->db->
get_where("estudiantes", array("idestudiante" => $id))->
row();
}
public function update($data, $id)
{
$this->db->set($data);
$this->db->where("idestudiante", $id);
$this->db->update("estudiantes", $data);
$rows = $this->db->affected_rows();
return $rows;
}
}

NOTA: Todos los modelos deben extender de la clase CI_Model.


Tambien creamos el modelo para la tabla de carreras, se llamará Carrera_model, debe
quedarnos así:

<?php
defined('BASEPATH') or exit('No direct script access allowed
');
class Carrera_model extends CI_Model
{
public function __construct()
{
parent:: __construct();
}
public function getAll()
{
$query = $this->db->get("carreras");
$records = $query->result();
return $records;
}
}

CREACIÓN DEL CONTROLADOR.


Luego procedemos a crear el controlador llamada Estudiantes, dentro de la carpeta controllers.
Nos debe quedar así:
<?php
defined('BASEPATH') or exit('No direct script access allowed
');
//class EstudiantesController extends CI_Controller
class Estudiantes extends CI_Controller
{
//Metodo magico
public function __construct()
MOVILES página 3
public function __construct()
{
parent:: __construct();
$this->load->helper('url');
$this->load->library('session');
}
//// FUNCIONES QUE CARGAN VISTAS ////
public function index()
{
$this->load->model('Estudiante_model');
$data = array(
"records" => $this->Estudiante_model->getAll(),
"title" => "Estudiantes",//
);
//$this->load->view("estudiantes/index", $data);
$this->load->view("shared/header", $data);//
$this->load->view("estudiantes/index", $data);//
$this->load->view("shared/footer");//
}
public function insertar()
{
$this->load->model(/
*'Carrera_model'*/'Estudiante_model');
$data = array(
//"carreras" => $this->Carrera_model->getAll(),
"title" => "Insertar estudiante"
);
//$this->load->view("estudiantes/add_edit", $data);
$this->load->view("shared/header", $data);//
$this->load->view("estudiantes/add_edit", $data);//
$this->load->view("shared/footer");//
}
public function modificar($id)
{
$this->load->model('Carrera_model');
$this->load->model('Estudiante_model');
$estudiante = $this->Estudiante_model->getById($id);
$data = array(
"carreras" => $this->Carrera_model->getAll(),
"estudiante" => $estudiante,
"title" => "Modificar estudiante",
);
$this->load->view("shared/header", $data);
$this->load->view("estudiantes/add_edit", $data);
$this->load->view("shared/footer");
}
/// FIN FUNCIONES QUE CARGAN VISTA ///
//=====================================
// FUNCIONES QUE REALIZAN OPERACIONES

MOVILES página 4
// FUNCIONES QUE REALIZAN OPERACIONES
public function add()
{
$this->load->model('Estudiante_model');
$data = array(
"idestudiante" => $this->input->
post("idestudiante"),
"nombre" => $this->input->post("nombre"),
"apellido" => $this->input->post("apellido"),
"email" => $this->input->post("email"),
"usuario" => $this->input->post("usuario"),
"idcarrera" => $this->input->post("idcarrera"),
);
$rows = $this->Estudiante_model->insert($data);
if ($rows > 0) {
$this->session->
set_flashdata('success', "Información guardada correctamente
.");
} else {
$this->session->
set_flashdata('error', "No se guardó la información.");
}
redirect("estudiantes/insertar");
}
public function update()
{
$this->load->model('Estudiante_model');
$data = array(
"idestudiante" => $this->input->
post("idestudiante"),
"nombre" => $this->input->post("nombre"),
"apellido" => $this->input->post("apellido"),
"email" => $this->input->post("email"),
"usuario" => $this->input->post("usuario"),
"idcarrera" => $this->input->post("idcarrera"),
);
try {
$rows = $this->Estudiante_model->
update($data, $data["idestudiante"]);
$this->session->
set_flashdata('success', "Información modificada correctamen
te.");
} catch (Exception $e) {
$this->session->
set_flashdata('error', "No se guardó la información.");
} finally {
redirect("estudiantes/modificar/" . $data["idest
udiante"]);
}

MOVILES página 5
}
}
public function eliminar($id)
{
$this->load->model('Estudiante_model');
$result = $this->Estudiante_model->delete($id);
if ($result) {
$this->session->
set_flashdata('success', "Registro borrado correctamente.");
} else {
$this->session->
set_flashdata('error', "No se pudo borrar el registro.");
}
//redirect("estudiantesController");
redirect("estudiantes");
}/*
public function modificar($id)
{
$this->load->model('Carrera_model');
$this->load->model('Estudiante_model');
$estudiante = $this->Estudiante_model->getById($id);
$data = array(
"carreras" => $this->Carrera_model->getAll(),
"estudiante" => $estudiante,
);
$this->load->view("estudiantes/add_edit", $data);
}*/
}

Explicación:
En el constructor cargamos los el helper url, para acceder a la URL Base y del site, y también
cargamos la librería de session, así:

$this->load->helper('url');
$this->load->library('session');
Es importante que antes de usar un modelo, sea cargado así, por ejemplo:

Luego de eso el modelo ya es accesible, así por ejemplo cuando insertamos:

Para obtener la información de una petición post, se accede así, por ejemplo:

Cuando se requiere mandar un mensaje que sólo debe durar una petición, como por ejemplo
para indicar que la operación fue exitosa o hubo un error, se debe almacenar dicha información
en una sesión flash, así:

Para redireccionar se usa el siguiente método:

MOVILES página 6
Para redireccionar se usa el siguiente método:

redirect("estudiantes/insertar");

Donde estudiantes es el Controlador, e insertar es el método del controlador.

CREACIÓN DE LA VISTA.
Procedemos a crear dos carpetas en el directorio raíz de nuestra aplicación, serán las carpetas
css, y js. Debe quedarnos así:

En la carpeta css, creamos un archivo styles.css y debe quedarnos así:

Luego en la carpeta views creamos una carpeta llamada estudiantes, y a esta carpeta
agregamos dos archivos, el index.php, y el archivo add_edit.php.
Los cuales deben quedarnos así:
index.php

MOVILES página 7

También podría gustarte