app\Models\ContactoModel.php (Queda igual)
<?php
namespace App\Models;
use CodeIgniter\Model;
class ContactoModel extends Model
{
protected $table = 'contactos';
protected $primaryKey = 'id';
protected $allowedFields = ['nombre', 'apellidos', 'celular'];
protected $validationRules = [
'nombre' => 'required|min_length[3]',
'apellidos' => 'required|min_length[3]',
'celular' => 'required|numeric|min_length[7]'
];
protected $validationMessages = [
'nombre' => ['required' => 'El nombre es obligatorio.', 'min_length' => 'Debe tener al menos 3 caracteres.'],
'apellidos' => ['required' => 'Los apellidos son obligatorios.', 'min_length' => 'Los apellidos debe tener al menos 3 caracteres.'],
'celular' => ['required' => 'El celular es obligatorio.', 'numeric' => 'El celular debe contener solo números.', 'min_length' => 'El celular debe tener al menos 7 dígitos.']
];
}
app\Controllers\Contacto.php (Extracto)
public function actualizar($id)
{
$modelo = new ContactoModel();
$data = [
'id' => $id,
'nombre' => $this->request->getPost('nombre'),
'apellidos' => $this->request->getPost('apellidos'),
'celular' => $this->request->getPost('celular'),
];
if (!$modelo->update($id,$data)) {
// Vuelve a mostrar el formulario con los errores y datos ingresados
return view('contacto/editar', [
'errors' => $modelo->errors(),
'contacto' => $data
]);
}
return redirect()->to(MI_BASE_URL.'listar')->with('mensaje', 'Contacto actualizado exitosamente.');
}
app\Views\contacto\editar.php
<h1>Editar Contacto</h1>
<!-- Mostrar errores si existen -->
<?php if (isset($errors) && !empty($errors)): ?>
<div class="error">
<ul>
<?php foreach ($errors as $error): ?>
<li><?= esc($error) ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<form action="<?= MI_BASE_URL.'actualizar/'.$contacto['id'] ?>" method="post">
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" value="<?= $contacto['nombre'] ?>"><br><br>
<label for="apellidos">Apellido:</label>
<input type="text" id="apellidos" name="apellidos" value="<?= $contacto['apellidos'] ?>"><br><br>
<label for="celular">Celular:</label>
<input type="text" id="celular" name="celular" value="<?= $contacto['celular'] ?>"><br><br>
<input type="submit" value="Actualizar">
</form>
app\Views\contacto\listar.php
<h1>Listado de Contactos</h1>
<?php if (session()->getFlashdata('mensaje')): ?>
<p style="color:green"><?= session()->getFlashdata('mensaje') ?></p>
<?php endif; ?>
<table>
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>Celular</th>
<th>Acciones</th>
</tr>
<?php foreach ($contactos as $contacto) : ?>
<tr>
<td><?= $contacto['nombre'] ?></td>
<td><?= $contacto['apellidos'] ?></td>
<td><?= $contacto['celular'] ?></td>
<td>
<a href="<?= MI_BASE_URL.'editar/'.$contacto['id'] ?>">Editar</a>
<a href="<?= MI_BASE_URL.'eliminar/'.$contacto['id'] ?>">Eliminar</a>
</td>
</tr>
<?php endforeach ?>
</table>
No hay comentarios.:
Publicar un comentario