Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/11/2010, 14:11
Fenris
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda con accion agregar en mvc

supuesto: controlador Producto Acción Agregar producto
La acción de agregar, editar, eliminar, la ejecutas en el mismo controlador ya que son acciones que están vinculadas a ese ítem.
La vista es una archivo aparte que contiene la presentación del modelo o sea es básicamente HTML y PHP JS CSS. Por ende se sugiere que este en un directorio de vistas bajo un directorio que tenga el nombre del controlador y que se llame agregar por ejemplo para que sea un nombre significativo. Luego tienes que crear una clase que maneje estos archivos que se encargue de buscarlos y cargarlos para visualizarlos.

Una manera podrías ser esta.

Código PHP:
Ver original
  1. class ProductoController
  2. {
  3.    public function addAction()
  4.     {  
  5.    //definicion de variables de la action, importar clases que puedas ocupar para solicitar informacion a la bd.
  6.  
  7.    //procesar el request con los datos del form que enlazan al controlador y la accion.
  8.   //invocar el modelo que contiene la logica para guardar los datos en la base de datos
  9.   $model = new Model_Productos();
  10.   $model->agregarProducto($form->getValues() o $request->getPost() o $_POST);
  11.  
  12.  //una vez que se agrego el producto redirecciono al usuario al index para mostrarle los productos que ha agregado
  13.  $this->redirect('/producto/'); //la acción por defecto podria ser index, solo si tuvieras un metodo que redireccione.
  14.  
  15.   //cargar contenido el formulario
  16. //esto ira colocado en el action del formulario de esta manera <form  action='<?php echo $this->controller.'/'.$this->action;?>' />
  17.   $view = new View();
  18.   $view->action = 'add';
  19.   $view->controller='producto';
  20.  
  21.   $view->form = $form; //esto si tuvieras una clase que te genere los formularios sino no lo agregas.
  22.  
  23.  $view->setLayout('ruta/a/formulario/agregar/del/controlador/producto');
  24.  $view->render();//mostrar el formulario en la pagina.
  25.   }
  26.  
  27. }

Algo asi espero te pueda ayudar.