表单字段 - 表单和过滤器可用

列表默认预定义了几个字段,可直接使用; 如果需要不能满足需求,可自定义字段类,也很简单;

字段的用法

配置表单字段,生成添加和编辑表单的输入框; 不同类型的值,需要配置不同的字段;

#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormAutocomplete;
use easyadmin\app\columns\form\FormCheckbox;
use easyadmin\app\columns\form\FormCurrency;
use easyadmin\app\columns\form\FormDateTime;
use easyadmin\app\columns\form\FormDateTimeRange;
use easyadmin\app\columns\form\FormEditor;
use easyadmin\app\columns\form\FormHidden;
use easyadmin\app\columns\form\FormNumber;
use easyadmin\app\columns\form\FormRadio;
use easyadmin\app\columns\form\FormSelect;
use easyadmin\app\columns\form\FormSwitch;
use easyadmin\app\columns\form\FormText;
use easyadmin\app\columns\form\FormTextarea;
use easyadmin\app\columns\form\FormUpload;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            ->addField('field','字段名称',FormAutocomplete::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormCheckbox::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormCurrency::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormDateTime::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormDateTimeRange::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormEditor::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormHidden::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormNumber::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormRadio::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormSelect::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormSwitch::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormText::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormTextarea::class,[
                // options 选项
            ])
            ->addField('field','字段名称',FormUpload::class,[
                // options 选项
            ]);
    }


}
        
  1. 1. 不同的字段,只是在 options 选项上的不同;
  2. 2. configFormField方法表示配置表单;详见表单配置
addField 方法 参数说明:
字段 说明 类型 必填 默认值
field 字段名称;数据库表的字段 string
label 字段标题,显示名称 string
fieldClass 渲染字段的类名; 例如是使用 ListText 类渲染本字段,则填写 FormText::class string
options 字段的选项; 不同的字段类有不同的选项; array
文本字段 FormText

input 文本输入框

文本字段的 options 适用于所有其他字段

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
icon string 输入框前面增加一个图标
->addField('name', '分类名称', FormText::class,[
    'icon'=>'layui-icon layui-icon-gift',  //layui 的图标,  直接写上 class 名称即可
])
                        
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormText;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //文本字段
            ->addField('field', '字段名称', FormText::class,[
                //options 选项
                'class'=>'test_class_name',
                'attr'=>'disabled=disabled checked=checked data-id=345',
                'default'=>'顶级分类',
                'template'=>'test:test' //需要放在当前的模块的 views 目录中
            ])
    }

}
        
下拉搜索框 FormAutocomplete

下拉搜索框

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
table string 数据库表名称,在那张数据表中搜索
pk string 表的主键,或者是管理字段的值,搜索出来的结果如果被选中,会用这个值提交表单
property string 搜索那一个字段;界面上显示也是这个字段
url string 自定义搜索链接, 同 query 参数二选一 ;会传递参数
search: 用户输入的值
pk: 定义的主键
table: 定义的表名称
property: 定义的搜索属性
需要返回格式
{
    "code":1,
    "msg":"ok",
    "data":[
                {"value":1,"name":"php"},
                {"value":2,"name":"javascript"},
                {"value":3,"name":"程序语言jp"}
           ]
}
                            
query function 自定义搜索,同 url 参数二选一
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormAutocomplete;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //下拉搜索框
            ->addField('parent_id','上级分类',FormAutocomplete::class,[
                // options 选项
                'table' => 'category',
                'pk' => 'id',//使用查询,的主键
                'property' => 'name',//查询显示字段
                'url'=> url("autocomplete_select"), //搜索地址,默认就是这个
                // 自定义搜索,  url query 二选一
                'query'=>function( $table, $pk,$property, $search, $default){
                    /** @noinspection PhpDynamicAsStaticMethodCallInspection */
                    $query = Db::table($table)->field("`{$pk}`,`{$property}`")->limit(30);

                    //处理搜索 ; 用户输入的时候
                    if ($search) {
                        $query->where($property, 'like', "%{$search}%");
                    }

                    //处理默认值 ; 编辑的时候, 默认显示那条数据
                    if ($default) {
                        $query->where($pk, $default);
                    }

                    //返回 查询对象
                    return $query;
                }

            ])
    }

}
复选框 FormCheckbox

checkbox 复选框

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
title string 空是传统的 checkbox 框框中间勾选, 带文字是 layui 美化的样式
success string 正确或者打开 的值
error string 错误或者关闭 的值
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormCheckbox;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 复选框
            ->addField('is_del', '是否删除', FormCheckbox::class,[
                'title' => '',//空是传统的 checkbox 框框中间勾选,   带文字是 layui 美化的样式
                'success' => 1, //正确或者打开 的值; 默认 1
                'error' => 0, //错误或者关闭 的值; 默认 0
            ]);
    }

}
        
货币输入框 FormCurrency

前面一个图标, 数字输入框;

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormCurrency;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //货币输入框
            ->addField('money', '金额', FormCurrency::class,[

            ])
    }

}
        
日期时间选择框 FormDateTime
options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
options array layui 日期选择框的全部属性
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormDateTime;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //日期时间选择框
            ->addField('time', '创建时间', FormDateTime::class, [
                // type format in_format 格式要全部一致
                'format' => function ($val) {
                    return date('Y-m-d H:i:s', $val);
                },
                'options'=>[
                    // type format in_format 格式要全部一致
                    'type'=>'datetime', // 可选 date time datetime year month
                    'theme'=> '#393D49'
                    //  ...   更多 layui 的属性
                ],

                // type format in_format 格式要全部一致
                //'in_format' => 'strtotime'
                'in_format' => function ($val) {
                    return strtotime($val);
                }
            ])
    }

}
        
日期时间范围选择框 FormDateTimeRange

日期时间范围区间选择

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
options array layui 日期选择框的全部属性
end_field string end_field 处理的第二个字段, 例如: 开始时间 和 结束时间
一般情况下, 添加编辑页面会有到这个配置 ;
添加编辑页面 会分别保存 2个字段的值
搜索输入框过滤器的情况下, 不会用到这个配置 end_field

添加编辑 | 过滤器

是 | 否

#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormDateTimeRange;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //日期时间选择框
            ->addField('time', '创建时间', FormDateTimeRange::class, [
                // end_field 处理的第二个字段,  例如: 开始时间 和 结束时间
                // 一般情况下, 添加编辑页面会有到这个配置 ;
                // 添加编辑页面 会分别保存 2个字段的值
                // 搜索输入框过滤器的情况下, 不会用到这个配置 end_field
                'end_field' => 'end_time',

                // type format in_format 格式要全部一致
                'format' => function ($val) {
                    return date('Y-m-d H:i:s', $val);
                },
                'options'=>[
                    // type format in_format 格式要全部一致
                    'type'=>'datetime', // 可选 date time datetime year month
                    'theme'=> '#393D49'
                    //  ...   更多 layui 的属性
                ],

                // type format in_format 格式要全部一致
                //'in_format' => 'strtotime'
                'in_format' => function ($val) {
                    return strtotime($val);
                }
            ])
    }

}
        
富文本 FormEditor
options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
url string 图片上传路径
# 需要返回格式为
{
    "errno":0,
    "msg":"ok",
    "data":[
        "url1","url2"
    ]
}
                        
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormEditor;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //富文本
            ->addField('intro','简介',FormEditor::class)
    }

}
        
隐藏域 FormHidden

input type=hidden 的隐藏字段

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormHidden;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //隐藏域
            ->addField('intro','简介',FormHidden::class)
    }

}
        
数字输入框 FormNumber

input type=number 的输入框

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormNumber;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            //数字输入框
            ->addField('posts_num', '帖子数量', FormNumber::class)
    }

}
        
富文本 FormRadio
options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
options array 单选框的属性列表
options.key int|string|bool 存储在数据库中的值
options.text string 显示在界面上的文本
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormRadio;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 单选框
            ->addField('is_del', '是否删除', FormRadio::class, [
                'options' => [
                    ['key' => 1, 'text' => '删除',],
                    ['key' => 0, 'text' => '不删除',]
                ]
            ]);
    }

}
        
下拉搜索框 FormSelect

下拉搜索框

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
table string 数据库表名称,查询那张表的数据
pk string 表的主键,或者是管理字段的值,查询出来的结果如果被选中,会用这个值提交表单
property string 查询那一个字段;界面上显示也是这个字段
query function 自定义查询
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormSelect;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 下拉选择框
            ->addField('parent_id', '上级分类', FormSelect::class, [
                // 用法一 , 从数据库中查询出列表
                'table' => 'category',
                'pk' => 'id',//使用查询,的主键
                'property' => 'name',//查询显示字段


                //用法二 , 定义一个选择列表
                'options' => [
                    ['key' => 'php', 'text' => 'PHP'],
                    ['key' => 'javascript', 'text' => 'Javascript'],
                    ['key' => 'python', 'text' => 'Python'],
                    ['key' => 'java', 'text' => 'Java'],
                ],


                // 用法三, 定义一个完整的 查询语句 , 查询结果中必须要包含  pk  和  property 字段
                // 本案例 查询结果中必须要又 id 和 name 字段
                'query' => Db::table('category')->where('id','<',100)->select(),
                'pk' => 'id',//使用查询,的主键
                'property' => 'name',//查询显示字段


                // 用法四, 定义个个 query ,不是完整的查询语句 , 会自己增加 field('id,name')
                'query' => Db::table('category')->where('id','<',100),
                'pk' => 'id',//使用查询,的主键
                'property' => 'name',//查询显示字段


                //用法五 定义个 匿名函数
                'query'=>function(){
                    // 查询 结果 必须要要又 key 和 text 两个字段
                    //return Db::table('category')->where('id','<',100)->field('id as `key`,name as text')->select();

                    // 也可以自己处理查询结果 组装成二位数组
                    $selectRet =  Db::table('category')->where('id','<',100)->field('id,name')->select()->toArray();
                    return array_map(function ($item){
                        return ['key'=>$item['id'],'text'=>$item['name']];
                    },$selectRet);

                }
            ])
    }

}
开关 FormSwitch

switch 开关

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
text string 开关文字,用数显分隔
success string 正确或者打开 的值
error string 错误或者关闭 的值
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormSwitch;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 开关
            ->addField('is_del', '是否删除', FormCheckbox::class,[
                'success' => 1, //正确或者打开 的值 默认 1
                'error' => 0, //错误或者关闭 的值  默认 0
                'text' => '开|关',//开关文字,用数显分隔,
                'attr' => 'disabled' ,// 属性复制 disabled  将不可操作
            ]);
    }

}
        
有时候只需要展示状态,不需要操作; 只需要复制 attr disabled 即可
文本域 FormTextarea

textarea 输入框

options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormTextarea;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 文本域
            ->addField('intro','简介',FormTextarea::class)
    }

}
        
文件上传 FormUpload
options 选项说明
字段 类型 说明 必填
展开全部参数
class string 给元素增加一个 class 样式名称 ; 多个class 空格分开; 例如 : className1 className2
attr string 给元素增加一个属性; 例如: disabled=disabled checked=checked data-id=345
default string | array 给字段一个默认值,如果数据库中值为空,则显示这个值;日期时间范围(FormDateTimeRange)字段; 为一个数组
template string 自定义模板路径; 放在当前模块的 views 目录中 ; 详见自定义模板
jsFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
cssFiles array 需要加载的 js 文件数组,相对于项目的运行根目录查找,如果没有修改配置是在project\public\ 目录中查找
format function 格式化后输出到界面
null : 关闭格式化,原样输出 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'format' => function ($val) {
    // 格式化后返回界面
    return $val;
}
        
注意: 字段有值才会进入 format ; 如果没值也要进入,请设置 default 属性
in_format function 格式化后 用作过滤器, 或者存储到数据库
null : 关闭格式化 (默认)
string : 使用 date 函数格式化 (日期时间字段生效)
function : 自定义匿名函数格式化
'in_format' => function ($val) {
    // 格式化后 用作过滤器, 或者存储到数据库
    return $val;
}
        
help string 输入框的下方显示一段文本,用来提示相关的信息
url string 图片上传路径
# 需要返回格式为
{
    "errno":0,
    "msg":"ok",
    "data":["url1"]
}
                        
width int 图片宽度
height int 图片高度
cropper bool 是否启用图片裁剪
#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormUpload;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 图片上传
            ->addField('icon', '分类图标', FormUpload::class,[
                'width' => 100, //宽                 默认 80
                'height' => 60,//高                  默认 80
                'cropper' => true,//是否启用图片裁剪   默认 true
            ])
    }

}
        
设置默认值 - default value

这个问题常被人关注,独立出来明显一点

所有字段都有一个默认值选项 FormRadio Checkbox ..... 都有

#project\app\admin\controller\Category.php

namespace app\admin\controller;

use easyadmin\app\columns\form\FormText;
use easyadmin\app\libs\PageForm;

class Category extends \easyadmin\controller\Admin
{

    /**
     * 配置表单
     * @param PageForm $page
     */
    protected function configFormField(PageForm $page)
    {
        $page
            // 图片上传
            ->addField('icon', '分类图标', FormText::class,[
                'default'=> '填写默认值'
            ])
    }

}