bitsystem/searchpro

这是一个允许您列出数据库表格的库。它可以显示相关表格并按多个值过滤它们。您可以分页结果并指定每页的结果数量。

1.0.0 2018-07-26 09:58 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:08:25 UTC


README

适用于 symfony 3.x4.x 的库。从服务器临时文件(/tmp)中裁剪获取的图片。通常在这个文件夹中保存通过表单等传递的数据。根据传入的参数在图像中心裁剪缩略图,并返回一个包含保存路径和生成的缩略图的数组。这些图像保存在位于 "/web" 或 "/public" 的文件夹中。

索引

SearchGloom

如何工作?

  • 首先:获取临时图像的路径。
  • 其次:实例化 Imagen() 类。
  • 第三:使用 setName() 方法插入图像名称。
  • 第四:插入图像临时文件、保存目录的名称和回调函数,以便调用缩略图函数。
  • 第五:save() 返回包含保存图像元数据的数组。

调用库

use Bitsystem\Backend\Image;
//Obtiene la imagen pasada por un formulario
$imageBinary = $request->files->get('image', FALSE);

//Instancia la clase
$image = new Image();
$image->setName($request->request->get('name', NULL));
$image->insertImage($imageBinary, 'course',function($e){
    $e->thumbnail(40,40);
    $e->thumbnail(364,205);
    $e->thumbnail(1080,720);
});

//Retorna un array
$imageSave = $image->save();

//Recorre el array para obtener el path de la imagen
foreach ($imageSave['thumbnails'] as $value){
    $value['route'];
    $value['width'];
    $value['height'];
}

Search Pro

Search pro 是一个库,旨在通过命名需要可视化的表和列来显示数据库表。此外,您可以根据列过滤表格。它包含一个分页系统,该系统根据所选筛选器通过 Ajax 搜索表格结果。

索引

如何工作?

我们访问终端并在我们的 Symfony 项目的 composer.json 中使用 composer 安装库。

composer require bitsystem/searchpro

Twig

我们需要首先添加必要的 select2.js 以能够显示表格的筛选器。然后添加 tableList.js 到最后。

{{ blocks javascripts }}
    //Dependencias
    <script type="text/javascript" src="{{ asset('assets/select2/dist/js/select2.min.js') }}"></script>
    //Plugin para generar la tabla
    <script src="{{asset('js/tableList.js')}}"></script>
{{ endblocks }}

Php

首先在控制器中包含库。

use Bitsystem\SearchPro\Search as Search;

获取要搜索的文本和要搜索的筛选器。实例化类并使用所需的方法显示列。

//Campo de busqueda
$textSearch = $request->request->get('q','');

//Parametros del filtro
$filter = $request->request->get('filter','');
$search = new Search($this->getDoctrine()->getManager(), $request);
$result = $search->setTable('Clientes')
    ->addColum([
                'id' => 'id',
                'nombre' => 'nombre'
    ])
    ->selectRow([	1 => 1,
                    10 => [ 10, true ],
                    20 => 20,
                    30 => 30,
                    40 => 40,
                    'Todo' => 'all'
                ])
    ->search('nombre',$textSearch)
    ->getResult();
    return $result;

参数

分页

如果需要隐藏表格的分页,只需添加 paging 选项。默认情况下,paging 的值是 TRUE

paging: false

结果数量

表格列的总数显示在分页下方。默认情况下,info的值为TRUE。如果需要隐藏信息,只需添加info选项。

info: false

addColum

->addColum([
            'nombre variable' => 'Nombre columna Tabla'
])

该方法用于获取主表名称,以便进行查询。主表通过以下方法与其它表相关联:addColumForeignKey()addColumForeignKey()

->setTable('Nombre tabla')

->addColumForeignKey([
          'POPULATION' => [
                          'type' => 'select',
                          'table' => 'MUNICIPALITY',
                          'columReference' => 'MUNICIPALITY',
                          'colum' => 'POPULATION'
                      ]
     ])

要实现此功能,我们需要在控制器和视图twig中插入一些必要的文件。

基本HTML结构

<div class="search-pro">
    <div class="card">
        <div class="card-body">
            
            <div class="row">
                <div class="col-xl-10 col-sm-10">
                    <label>Buscar:</label>
                    <input type="search" id="find" class="form-control">
                </div>  
                <div class="col-xl-2 col-sm-2">
                    <button id="find-ajax" class="btn btn-primary waves-effect waves-light">Buscar</button> 
                </div>
            </div>
            <div class="row">
               
            </div>

            <div class="table-rep-plugin">
                <div class="table-responsive">
                    <table class="table table-condensed m-b-none">
                        <thead></thead>
                        <tbody></tbody>
                    </table>
                    <h6 class="text-center info-count"></h6>                    
                </div>
            </div>
        </div>
    </div>
</div>
$("#search-pro").search({
    textSend: $('#find'),
    buttonSend: $('#find-ajax'),
    paging: false,
    info: false,
    colums: ['Id','Nombre'],
    tableRow: function(data){
        var row = "";
        $.each(data.result, function(k, v){
            row += "<tr data-href='"+v.id+"'>\
                        <th>"+v.id+"</th>\
                            <th>\
                            <a>"+v.nombre+"</a>\
                        </th>\
                    </tr>";
        });
        return row;
    }
});

npm install

注意

这个库使用GET和POST方法,我们必须确保已经启用了这些请求。

结果

根据指示参数查看表格的视图

tabla

Give the example

重复以上步骤

until finished

以获取系统中的某些数据或进行简单演示为例

运行测试

解释如何运行此系统的自动化测试

分解为端到端测试

解释这些测试测试的内容以及原因

Give an example

和编码风格测试

解释这些测试测试的内容以及原因

Give an example

部署

添加有关如何在生产系统上部署此项目的附加说明

构建工具

贡献

请阅读CONTRIBUTING.md,了解我们的行为准则和提交拉取请求的过程。

版本控制

我们使用SemVer进行版本控制。有关可用版本,请参阅此存储库的标签

作者

也可以查看参与此项目的贡献者列表

许可证

此项目根据MIT许可证发布 - 请参阅LICENSE.md文件以获取详细信息

灵感来源