alrik11es/laravel-rapids

为 Laravel 的高效原型设计。

dev-master / 1.0.x-dev 2018-05-22 10:07 UTC

This package is auto-updated.

Last update: 2024-08-26 00:52:31 UTC


README

alt tag

使用 Laravel 实现的快速开发。

本库旨在帮助那些希望尽可能快地开发应用程序的开发者。

需求

  • PHP >= 7.0.0
  • 在您的项目中启用 Bootstrap

安装

将 Rapids 服务提供者 Laravel\Rapids\RapidsServiceProvider::class, 添加到 Laravel 的 app.php 配置文件中。

使用方法

<?php
$data_grid = new DataGrid(Post::query());
$data_grid->add('id', 'id');
$data_grid->add('title', 'Name');
$data_grid->setActions('/post/edit', 'modify|delete');

$grid = Widget::load($data_grid);

return view('grid', compact('grid'));

在视图中

{!! $grid !!}

这将生成一个简单的数据网格,带有修改/删除选项。

加载任何小部件

记住,要加载任何小部件,您需要执行 $widget_render = Widget::load($widget); 并返回该小部件的渲染结果。您只需要将 {!! $widget !!} 作为原始格式传递给 blade。

元素

为了简化该工具的易用性,我们为您创建了一些小部件。只需在任何位置使用它们即可。

数据网格

数据网格是计算机开发的桥梁。您将需要它在所有事情上。让我们看看 Rapids 带来的选项。

启动

$data_grid = new DataGrid(Post::query()); 在 Eloquent 模型查询中开始您的数据网格

向表中添加新字段

$data_grid->add('title', '标题'); 当您需要添加新字段时。

如果您需要该字段显示 orderBy 按钮,将第三个可选参数设置为 true。

操作(编辑/显示/删除)

$data_grid->setActions('/post/edit', 'modify|delete'); 这将在您的数据网格中添加操作按钮。可用选项是 "modify", "delete", "show"。

值转换

想象一下常见的案例,当价格值超过 50 时将其标记为黄色。

$grid_widget->add('title', 'Title')->transform('price', 'Pricing', function($value){
    $result = $value;
    if($value > 50){
        $result = '<span style="background-color: yellow;">'.$value.'</span>';
    }
    return $result;
});

您显然可以创建自己的小部件,而不是将原始 HTML 添加到 PHP 代码中。只需将任何渲染的字符串作为回调的结果传递即可。

行转换

有时您需要将一些类设置为整个行。使用此类型的转换来完成此操作。

关系

显然您将需要向表中添加一些关系。实现此目的的最佳方式是使用转换。例如

$grid_widget->addTransformation('categories', 'Categories', function($value){
    return $value->implode('name', ', ');
});

setActions

数据表单

public function create()
{
    $data_form = new DataForm(new Book(), '/admin/book');
    $data_form->add('title', 'Book title');
    $data_form->add('categories.name', 'Categories', Cell::TYPE_CHECKBOXGROUP);
    $create = Widget::load($data_form);
    return view('admin/book/create', compact('create'));
}
public function store()
{
    $data_form = new DataForm(new Book(), '/admin/book');
    $data_form->setRequest($request);
    $data_form->request('title');
    $data_form->request('token');

    return $data_form->operate();
}

想法

这个想法来自其他人的库,这些库非常好。并且需要有一个良好的代码库来处理。