gerson22/formap

数据库字段映射库,用于创建动态表单

0.3.0 2017-12-05 07:35 UTC

This package is not auto-updated.

Last update: 2024-09-19 16:40:34 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

数据库字段映射库,用于自动生成表单

需求

1.0.0

php >= 7.0.26

0.3.0

php >= 5.3.3

安装

使用 Composer

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

入门

在根目录创建文件

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=

用法

第一种选项

<?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();

第二种选项(使用 Laravel 5.*)

在 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()]);
    }
}

文档

方法

setId()

  • @string
  • 设置表单的 id 属性
/*
* @return Formap\Form
*/
$frm->setId("frmUsers")

setMethod()

  • @string
  • 设置表单的 method 属性
/*
* @return Formap\Form
*/
$frm->setMethod("POST")

setAction()

  • @string
  • 设置表单的 action 属性
/*
* @return Formap\Form
*/
$frm->setAction("/action.php")

only()

  • @array
  • 可见的字段
/*
* @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
  • 不可见的字段
/*
* @param  Array
* @return Formap\Form
* 0.3.0
*/
$frm->except(
          ['name' => 'producto_id']
);
* 1.0.0
$frm->except(['name' => 'producto_id']);

all()

  • @void
  • 映射所有字段
/*
* @return Formap\Form
*/
$frm->all();

add()

  • @array
  • 向映射的表格中添加外部字段
/*
* @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
  • 在指定要映射的字段后,将表单转换为 HTML
/*
* @return String
*/
$frm->all()->toHtml();