Pregunta:
Fecha: 07-12-2017 05:42:00
(En Español)
Estoy realizando un proyecto en php bajo el modelo MVC. Me surgió un problema con la URL. Tengo un controlador con un metodo index, en el cual estoy renderizando la información de una tabla de la BD. La idea es que me traiga las relaciones que tiene esa tabla con otra y me los lista permitiendome la opcion de eliminar esa relación. Tengo un metodo dentro del controlador para realizar esta accion pero cuando lo intento llamar me genera inconveniente porque el metodo "index" no se borra, entonces cuando trato de eliminar esa relacion me llama el metodo que necesito como parametro del metodo index... Como puedo corregir que pase eso cuando intento llamar los controladore y metodos.
Gracias de antemano.
Este es el codigo de .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA]
Este es el metodo index de mi controlador:
y este es el codigo de la vista que estoy renderizando:
La idea es que cuento le de click en el boton "Quitar" me elimine el registro seleccionado de la tabla que tiene las relaciones entre grupo y analista Votos: -1 - Respuestas: 3 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
Manipular URL PHP MVC[Resuelta]
Buenos días.Estoy realizando un proyecto en php bajo el modelo MVC. Me surgió un problema con la URL. Tengo un controlador con un metodo index, en el cual estoy renderizando la información de una tabla de la BD. La idea es que me traiga las relaciones que tiene esa tabla con otra y me los lista permitiendome la opcion de eliminar esa relación. Tengo un metodo dentro del controlador para realizar esta accion pero cuando lo intento llamar me genera inconveniente porque el metodo "index" no se borra, entonces cuando trato de eliminar esa relacion me llama el metodo que necesito como parametro del metodo index... Como puedo corregir que pase eso cuando intento llamar los controladore y metodos.
Gracias de antemano.
Este es el codigo de .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA]
Este es el metodo index de mi controlador:
public function index($idAnalista = NULL)
{
$analistas = Analista::getAll();
if ($idAnalista != NULL) {
$gruposPerAnalista = Grupo::getGruposAnalista($idAnalista);
if (is_numeric($idAnalista)) {
$gruposPerAnalista[0]['id_analista'] = $idAnalista;
}
View::set("analistas", $analistas);
View::set("gruposPerAnalista", $gruposPerAnalista);
View::set("title", "Analistas");
View::render("analistas/index");
}else{
View::set("analistas", $analistas);
View::set("title", "Analistas");
View::render("analistas/index");
}
}
y este es el codigo de la vista que estoy renderizando:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?php echo $title ?></title>
</head>
<body>
<table class="table">
<thead>
<tr>
<th>
Id
</th>
<th>
Nombre
</th>
<th>
Cargo
</th>
<th>
Extensión
</th>
<th>
Celular
</th>
</tr>
</thead>
<tbody>
<?php
foreach ($analistas as $analista)
{
?>
<tr>
<td><?php echo $analista["id_analista"]; ?></td>
<td><?php echo $analista["nombre"]; ?></td>
<td><?php echo $analista["cargo"]; ?></td>
<td><?php echo $analista["extension"]; ?></td>
<td><?php echo $analista["celular"]; ?></td>
<td>
<a href="update/<?php echo $analista['id_analista']; ?>"><button>Acutalizar</button></a>
<a href="delete/<?php echo $analista['id_analista']; ?>" onclick="return confirm('¿Seguro desea eliminar este registro?');"><button>Eliminar</button></a>
<a href="index/<?php echo $analista['id_analista']; ?>"><button>Ver grupos</button></a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php if (isset($gruposPerAnalista[0])) { ?>
<table>
<thead>
<tr>
<th colspan="3">Analista <?php echo $analista["nombre"] ?></th>
</tr>
<tr>
<th>Id grupo</th>
<th>Grupo</th>
<th>Descripcion</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php foreach ($gruposPerAnalista as $grupo): ?>
<tr>
<td><?php echo $grupo["id_grupo"]; ?></td>
<td><?php echo $grupo['nombre']; ?></td>
<td><?php echo $grupo['descripcion']; ?></td>
<?php if (isset($grupo['id_grupo']) && isset($grupo['id_analista'])) {
$remove = array('id_grupo' => $grupo['id_grupo'], 'id_analista' => $grupo['id_analista']);
} ?>
<td>
<a href="remove/<?php $remove; ?>" onclick="return confirm('¿Seguro desea eliminar este registro?');"><button>Quitar</button></a>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
<?php }else{ ?>
<span>No hay grupos relacionados</span>
<a href="add"><button>Agregar</button></a>
<?php } ?>
</body>
</html>
La idea es que cuento le de click en el boton "Quitar" me elimine el registro seleccionado de la tabla que tiene las relaciones entre grupo y analista Votos: -1 - Respuestas: 3 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 10-12-2017 13:31:35 supongo que cuando estas en tu método index tu ruta es mi_proyecto/index
pero al dale click en eliminar quedaría algo como mi_proyecto/index/eliminar/9 ó mi_proyecto/indexeliminar/9
puedes poner en tu ruta <a href="?url=eliminar/9">eliminar</a>
recuerda que url es una variable que se pasa atraves dela ruta por el método get
espero que te sirva
NOTA: a la proxima usa las etiquetas para mostrar código se hace mas fácil leerlo Votos: 0 - Link respuesta -
Fecha: 11-12-2017 06:49:13 Hola. Lo siento por el codigo, de hecho es la primera vez que realizo una pregunta aquí. Así que no conozco aun como manejar bien las etiquetas que mencionas. Y de la url, aun no me funciona. En la url simplemente me agrega "?url=delete/30". Osea, queda así: mi_proyecto/index?url=delete/30/ Votos: 0 - Link respuesta
-
Fecha: 13-02-2018 04:19:32 Hola. Lo resolví utilizando una ruta global, por decirlo asi, ejemplo: http://localhost/mi_proyecto/index/delete/30 Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
