New question

Question:

Date: 07-12-2017 05:42:00 (In Spanish)

Manipular URL PHP MVC[Resolved]

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
Tags: $_GET - $_POST - Apache - Array PHP - Database - htaccess - HTML - MVC - MySQL - object oriented programming - OOP - PHP - PHP Advanced - PHP PDO - phpMyAdmin - Question - Script PHP - URL Votes: -1 - Answers: 3 - Views: 16 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 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
      Votes: 0 - Link answer
     
  • Date: 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/   Votes: 0 - Link answer
     
  • Date: 13-02-2018 04:19:32 Hola. Lo resolví utilizando una ruta global, por decirlo asi, ejemplo: http://localhost/mi_proyecto/index/delete/30   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com