Edición de «AutoCarga de Objetos KumbiaPHP»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 20: Línea 20:
 
</pre>
 
</pre>
  
En concordancia con los fields (campos) de la tabla "menus" se indica el comportamiento de la ''AutoCarga de Objeto'' para que el controller no tenga que recoger cada uno de los valores enviado por POST.
+
En concordancia con los fields (campos) de la tabla "menus" se indica el comportamiento de la ''AutoCarga de Objeto'' para que el controller no tener que recoger cada uno de los valores enviado por POST.
  
 
Para este caso haremos en los helpers:
 
Para este caso haremos en los helpers:
 
<pre>
 
<pre>
 
text_field_tag(array('menus.titulo'))
 
text_field_tag(array('menus.titulo'))
</pre>
 
En la Beta2
 
<pre>
 
Form::text('menus.titulo')
 
 
</pre>
 
</pre>
  
Línea 35: Línea 31:
 
== La Vista (create.phtml) ==
 
== La Vista (create.phtml) ==
  
<source lang="php" line>
+
<source lang=php >
 
<?php View::content(); ?>
 
<?php View::content(); ?>
 
<?php echo form_tag('menus/create/') ?>
 
<?php echo form_tag('menus/create/') ?>
 
<table>
 
<table>
 
     <tr>
 
     <tr>
         <td>Nombre:</td>
+
         <td>Nombre</td>
 
         <td><?php echo text_field_tag(array('menus.nombre')) ?></td>
 
         <td><?php echo text_field_tag(array('menus.nombre')) ?></td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
         <td>Titulo:</td>
+
         <td>Titulo</td>
 
         <td><?php echo text_field_tag(array('menus.titulo')) ?></td>
 
         <td><?php echo text_field_tag(array('menus.titulo')) ?></td>
 
     </tr>   
 
     </tr>   
Línea 53: Línea 49:
 
</table>
 
</table>
 
<?php echo end_form_tag() ?>
 
<?php echo end_form_tag() ?>
</source>
 
 
En la Beta2
 
 
<source lang="php" line>
 
<?php View::content(); ?>
 
<?php echo Form::open('menus/create/') ?>
 
<table>
 
    <tr>
 
        <td>Nombre:</td>
 
        <td><?php echo Form::text('menus.nombre') ?></td>
 
    </tr>
 
    <tr>
 
        <td>Titulo:</td>
 
        <td><?php echo Form::text('menus.titulo') ?></td>
 
    </tr> 
 
    <tr>
 
        <td>&nbsp;</td>
 
        <td><?php echo Form::submit('Agregar') ?></td>
 
    </tr>
 
</table>
 
<?php echo Form::close() ?>
 
 
</source>
 
</source>
  
Línea 91: Línea 65:
 
Ahora vemos el código que se utiliza en controllers/menus_controller.php en su acción create().
 
Ahora vemos el código que se utiliza en controllers/menus_controller.php en su acción create().
  
<source lang="php" line>
+
<source lang=php>
 
  <?php
 
  <?php
 
  /**
 
  /**
Línea 122: Línea 96:
 
                 //se hacen persistente los datos en el formulario
 
                 //se hacen persistente los datos en el formulario
 
                 $this->menus = $this->post('menus');
 
                 $this->menus = $this->post('menus');
                /**
 
                * NOTA: para que la autocarga aplique de forma correcta, es necesario que llame a la variable de instancia
 
                * igual como esta el model de la vista, en este caso el model es "menus" y quedaria $this->menus
 
                */
 
            }
 
        }
 
        else
 
        {
 
          Flash::success('Operación exitosa: datos Guardado');
 
        }
 
    }
 
}
 
?></source>
 
 
Para la Beta2
 
<source lang="php" line>
 
<?php
 
/**
 
    * Crea un Controlador para el menu
 
    *
 
    */
 
    Load::model('menus');
 
     
 
class MenusController extends ApplicationController
 
{
 
   
 
    public function create ()
 
    {
 
        /**
 
        * Se verifica si el usuario envio el form (submit) y si ademas
 
        * dentro del array POST existe uno llamado "menus"
 
        * el cual aplica la autocarga de objeto para guardar los
 
        * datos enviado por POST utilizando autocarga de objeto
 
        */
 
        if(Input::hasPost('menus')){
 
            /**
 
            * se le pasa al modelo por constructor los datos del form y ActiveRecord recoge esos datos
 
            * y los asocia al campo correspondiente siempre y cuando se utilice la convención
 
            * model.campo
 
            */
 
            $menu = new Menus(Input::post('menus'));
 
            //En caso que falle la operación de guardar
 
            if(!$menu->save()){
 
                Flash::error('Falló Operación');
 
                //se hacen persistente los datos en el formulario
 
                $this->menus = Input::post('menus');
 
 
                 /**
 
                 /**
 
                 * NOTA: para que la autocarga aplique de forma correcta, es necesario que llame a la variable de instancia
 
                 * NOTA: para que la autocarga aplique de forma correcta, es necesario que llame a la variable de instancia

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: