biswadeep / form-tool
v3.0.43
2024-09-29 17:39 UTC
Requires
- php: ^8.1
- intervention/image: ^2.7.2
- dev-main
- v3.0.43
- v3.0.42
- v3.0.41
- v3.0.40
- v3.0.39
- v3.0.38
- v3.0.37
- v3.0.36
- v3.0.35
- v3.0.34
- v3.0.33
- v3.0.32
- v3.0.31
- v3.0.30
- v3.0.29
- v3.0.28
- v3.0.27
- v3.0.26
- v3.0.25
- v3.0.24
- v3.0.23
- v3.0.22
- v3.0.21
- v3.0.20
- v3.0.19
- v3.0.18
- v3.0.17
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.30
- v2.0.29
- v2.0.28
- v2.0.27
- v2.0.26
- v2.0.25
- v2.0.24
- v2.0.23
- v2.0.22
- v2.0.21
- v2.0.20
- v2.0.19
- v2.0.18
- v2.0.17
- v2.0.16
- v2.0.15
- v2.0.14
- v2.0.13
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- 1.0.0
- dev-php-7.4
This package is auto-updated.
Last update: 2024-09-29 17:40:20 UTC
README
一个轻量级的Laravel表单工具,轻松创建您的Web应用或管理面板!
轻松创建复杂的CRUD,节省时间。创建无bug的应用并自信交付。
我爱示例,让我们直接进入
$model = new DataModel();
$model->db('products', 'productId');
$this->crud = Doc::create($this, $model, function (BluePrint $input) {
$input->text('productName', 'Product Name')->required();
$input->select('categoryId', 'Category')->options('categories.categoryId.categoryName')->required();
$input->number('price', 'Price')->required();
$input->image('image', 'Image');
$input->editor('description', 'Description');
});
让我解释
让我们假设我们有一个名为 products
的产品表,包含列 productId, productName, categoryId, price, image, description
,还有一个名为 categories
的分类表,包含列 categoryId, categoryName
。
首先,我们创建了一个 $model = new DataModel();
并在第二行传递了产品表的表名和主键ID。这是告诉表单工具这是一个CRUD表的简单方法。
然后,我们通过调用 Doc::create()
创建一个CRUD,参数为
- Laravel的控制器类作为 $this
- 传递我们上面创建的 $model
- 最后一个参数是 Closure,它将提供一个 Blueprint 作为参数。
现在让我们了解Closure内部的字段。为此,让我告诉你们一件事,闭包中最多的方法第一个参数是数据库列名,第二个是该字段的可选标签。所以这里有输入字段
- 我们创建了一个文本字段,列名为
productName
,标签为Product Name
,并应用了必要的验证。 - 然后是一个下拉列表,列名为
categoryId
,标签为Category
,指示表单工具从另一个表categories
获取选项,然后将categoryId
和categoryName
用点(.)分隔作为 - 然后我们有一个价格字段,自动应用数字验证,因为我们指定它是数字字段,然后应用了必要的验证。
- 然后我们创建了一个图像字段,它将自动应用图像文件的验证并上传图像到子目录
public/storage/
。关于文件上传的更多信息将在后面介绍。 - 最后,我们为描述列创建了一个默认的
CKEditor
编辑器。
完整代码
<?php
namespace App\Http\Controllers\Admin;
use Deep\FormTool\Core\Doc;
use Deep\FormTool\Core\BluePrint;
use Deep\FormTool\Core\DataModel;
class ProductsController extends AdminController
{
// Required for FormTool
public $title = 'Products';
public $route = 'products';
public $singularTitle = 'Product';
protected $crud = null;
protected function setup()
{
$model = new DataModel();
$model->db('products', 'productId');
$this->crud = Doc::create($this, $model, function (BluePrint $input) {
$input->text('productName', 'Product Name')->required();
$input->select('categoryId', 'Category')->options('categories.categoryId.categoryName')->required();
$input->number('price', 'Price')->required();
$input->image('image', 'Image');
$input->editor('description', 'Description');
});
return $this->crud;
}
}
这将给我们
- 包含批量操作(复制、删除)、搜索、分页、按列排序、操作(编辑、删除)的产品列表页面
- 包含上述所有字段的创建产品页面
- 包含上述所有字段的编辑产品页面
- 产品回收站页面:此页面将包含已删除的项目。您现在可以永久删除它们。
- FormTool活动:将存储所有活动,如创建了什么项目、更新了什么、复制了什么、删除了什么、恢复了什么以及永久删除了什么。
如果您已经了解了这么多,那么您就可以开始使用这个包了,之后可以回到下面的文档中寻求帮助(我更喜欢这种方式学习新事物 😉)。如果您更喜欢先阅读文档,请向下阅读。
我们有很多这样的酷功能。这只是开始。如果您喜欢这个包,请通过在 github 上给它加星标来支持它。
此包仍在积极开发中。
您可以使用以下基本包来加速设置: form-tool-skeleton
谢谢