binarycabin/laravel-reporting

构建报告的基本工具

1.0.0 2017-11-20 14:58 UTC

This package is auto-updated.

Last update: 2024-09-06 09:34:37 UTC


README

构建报告的基本工具

composer require binarycabin/laravel-reporting

可用的特性

\BinaryCabin\LaravelReporting\Traits\Sortable

提供作用域以将可排序值传递给查询

// (/users?sort=last_name&sort_order=ASC)
$users = \App\User::sort($request->all())->get();

在您的模型中,添加以下属性以设置未传递时的默认排序

protected $sortFieldDefault = 'id'; protected $sortOrderDefault = 'ASC';

\BinaryCabin\LaravelReporting\Traits\Filterable

提供作用域以向您的查询添加过滤

\App\User::filter($request->all())->get();

在您的模型中,添加一个可过滤属性以确定允许过滤的所有列

protected $filterable = [
        'first_name',
        'last_name',
        'global',
];

如果存在具有可过滤名称的作用域,它将在过滤中使用。特性中提供了“global”作用域。这将遍历“filterableGlobal”数组中的所有字段,以匹配传递的查询

    protected $filterableGlobal = [
        'first_name',
        'company',
    ];
\App\User::filter(['global'=>'ABC Company'])->get();

可用的视图

包含可排序按钮的视图,在查看表格时传递“sort”和“sort_order”请求值

<th>@include('reporting::components.sort-button',['sortField'=>'created_at']) Date Created</th>

可用的控制器

还有一个可扩展的控制器可用,它提供了基本的 CRUD 操作,以及默认的排序/过滤功能。要使用此控制器,只需创建一个扩展它的控制器,并传递以下属性

<?php

namespace App\Http\Controllers\Manage\Users;

use BinaryCabin\LaravelReporting\Http\Controllers\BaseManageController;

class UserController extends BaseManageController
{

    protected $modelClass = \App\User::class;
    protected $baseTitlePlural = 'Users';
    protected $baseTitleSingular = 'User';
    protected $variableNamePlural = 'users';
    protected $variableNameSingular = 'user';
    protected $baseRoute = 'manage/user';
    protected $viewIndex = 'manage.user.index';
    protected $viewCreate='manage.user.create';
    protected $viewEdit='manage.user.edit';

}