gerson22/formap

Librería para mapeo de campos de la base de datos y crear formularios dinámicos

0.3.0 2017-12-05 07:35 UTC

This package is not auto-updated.

Last update: 2025-06-26 20:06:54 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Librería para mapeo de campos de la base de datos y generar formularios automáticamente

Require

1.0.0

php >= 7.0.26

0.3.0

php >= 5.3.3

Installation

With Composer

$ composer require gerson22/formap
{
    "require": {
        "gerson22/formap": "0.3.0"
    }
}

Getting Started

Create files on root directory

globals.php

<?php

$input = "<input type=\":type\" id=':name' name=':name' class=\"form-control\" placeholder=\":alias\">";
define('LAYOUT_INPUT',$input);//text,number,date,color etc

$select = "<selectname=':name' id=':name'>
            <option val='NULL' selected>Elige una opción</option>
          </select>";
define('LAYOUT_SELECT',$select);

$file = "<input type='file' name=':name'>";
define('LAYOUT_FILE',$file);

.env

  DB_CONNECTION=mysql
  DB_HOST=127.0.0.1
  DB_PORT=3306
  DB_DATABASE=auditoria
  DB_USERNAME=root
  DB_PASSWORD=

Usage

First Option

<?php
require 'globals.php';
require 'vendor/autoload.php';

use Formap\Form;

$tableName = 'users';
/*
* @params String $tableName
*/
$frm = new Form($tableName);

/*
* @return String
*/
$frm->all()->toHTML();

Second option with Laravel 5.*

add statment on public\index.php

  require_once __DIR__.'/../globals.php';
<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use Formap\Form;

class UserController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
      $form = new Form('users');
      $except = [
        ['name' => 'created_at'],
        ['name' => 'updated_at'],
        ['name' => 'activo']
      ];
      return view('users',['form'=>$form->except($except)->toHTML()]);
    }
}

Documentation

Methods

setId()

  • @string
  • Establece el atributo id del formulario
/*
* @return Formap\Form
*/
$frm->setId("frmUsers")

setMethod()

  • @string
  • Establece el atributo method del formulario
/*
* @return Formap\Form
*/
$frm->setMethod("POST")

setAction()

  • @string
  • Establece el atributo action del formulario
/*
* @return Formap\Form
*/
$frm->setAction("/action.php")

only()

  • @array
  • Campos que serán visibles
/*
* @param  Array
* @return Formap\Form
* 0.3.0
*/
$frm->only(
       array(
          ['name' => 'cantidad', 'as' => 'Cantidad'],
          ['name' => 'producto_id', 'as' => 'Producto']
));
** 1.0.0
$frm->only(
          ['name' => 'cantidad', 'as' => 'Cantidad'],
          ['name' => 'producto_id', 'as' => 'Producto']
);

except()

  • @array
  • Campos que no serán visible
/*
* @param  Array
* @return Formap\Form
* 0.3.0
*/
$frm->except(
          ['name' => 'producto_id']
);
* 1.0.0
$frm->except(['name' => 'producto_id']);

all()

  • @void
  • Mapea todos los campos
/*
* @return Formap\Form
*/
$frm->all();

add()

  • @array
  • Agrega fields externos a la tabla mapeada
/*
* @param  Array
* @return Formap\Form
* 0.3.0
*/
$frm->add(array(
       ['name'=>'email','as' => 'Correo electronico', 'icon' => 'envelope'],
       ['name'=>'password_confirmation','as' => 'Repetir contraseña', 'type' => 'password' , 'icon' => 'lock']
));

* 1.0.0
$frm->add(
       ['name'=>'email','as' => 'Correo electronico', 'icon' => 'envelope'],
       ['name'=>'password_confirmation','as' => 'Repetir contraseña', 'type' => 'password' , 'icon' => 'lock']
);

toHTML()

  • @void
  • Después de especificar los campos a mapear convertir el Form en HTML
/*
* @return String
*/
$frm->all()->toHtml();