Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/04/2017, 07:59
Triby2
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 10 años, 5 meses
Puntos: 30
Respuesta: Menú dinamico en mvc

Cita:
Iniciado por stevens82 Ver Mensaje
Hola triby2 gracias por responder, estuve probando el codigo y me surgieron algunas dudas con respecto a las consultas que se hace en el controlador, estas no deberian estar en el modelo me refiero a las consultas function getParentMenus() y getChildMenus($item), trate de ponerlas en el modelo como siempre lo hago de esta manera:

Código SQL:
Ver original
  1. public FUNCTION getParentMenus()
  2.     {
  3.         $menu = $this->_db->query('SELECT id, link, title, level FROM meno ORDER BY title');
  4.         RETURN $menu->fetchAll();
  5.     }

Y en el controlador llamo al modelo de esta manera

Código PHP:
class indexController extends Controller
{
    private 
$_menu;

    public function 
__construct()
    {
        
parent::__construct();
        
$this->_menu $this->loadModel('index');
    } 
y en una funcion traigo los datos para despues renderizarlo en la vista
de esta manera:

Código PHP:
public funcion index(){

//asi traigo los datos del modelo
$this->_view->menu $this->_menu->getParentMenus(); 

//asi renderizo a la vista
$this->_view->renderizar('index''inicio'); 

Y en la vista mostraba los datos con un foreach.

hice modificaciones pero sin ningun resultado positivo :(
Bueno, el codigo ya lo tienes, y resuelve tu problema de recursividad, lo que hay que trabajar ahora es el resultado.

Es normal que el resultado no sea el esperado pues el codigo no lo probé. ¿podrias compartir el resultado de mi codigo?

En cuanto tus dudas, en el modelo solo se deberia de guardar los metodos para añadir, actualizar, leer y borrar registros de la tabla.

En el controlador, van todas las funciones que te compartí, y ademas las funciones basicas que llamarian a los metodos de añadir, actualizar, leer y borrar pasanxoles a vada uno de ellos los datos a tratar. Es decir,en el contro,ador, crearias el array de datos que necesitas manejar, y pasarias el array al meteodo que necesites para que el modelo lo trate, una vez eso, llamarias a la vista.

Jamas llames a la vista desde el metodo constructor del controlador, pues no es lo correcto, lo suyo es que tengas un metodo index que SI llamaria a la vista para mostrar los datos, despues tendrias un metodo store(), donde recibiria los datos de un formulario, por poner un ejemplo, crearia el array como tu lo necesites, y lo enviarias al modelo para guardarlo, despues llamarias a la vista que podria mostrar un mensaje confirmando que se guardo, por poner un ejemplo.

Tendrias otro metodo llamado edit() que obtendria los datos del registro para mostrarlo en el formulario para que el usuario lo pueda editar y al clicar guardar,llamarias al metodo update() del controlador, que montaria el array con los datos modificados para ser enviado el metodo de actualizar en el modelo, despues llamaria a una vista que podria contener el menaje de que se actualizo con exito.

¿me explico?