快捷创建

在表格中开启这个功能之后,会在表格头部增加一个form表单来创建数据,对于一些简单的表格页面,可以方便快速创建数据,不用跳转到创建页面操作

快捷创建 - 图1

基本使用

{tip} 需要注意的是,快捷创建表单中的每一项,在form表单页面要设置相同类型的表单项。

  1. $grid->quickCreate(function (Grid\Tools\QuickCreate $create) {
  2. $create->text('name', '名称');
  3. $create->email('email', '邮箱');
  4. });

设置提交地址

{tip} Since v1.4.0

  1. $grid->quickCreate(function (Grid\Tools\QuickCreate $create) {
  2. $create->action('auth/users');
  3. $create->method('GET');
  4. });

表单支持的表单项有下面的几种类型

文本(text)

文本输入框

  1. $create->text('column_name', 'placeholder...');

隐藏表单(hidden)

文本输入框

{tip} Since v1.5.0

  1. $create->hidden('column_name');

邮箱(email)

邮箱输入框

  1. $create->email('column_name', 'placeholder...');

IP输入框

ip地址输入框

  1. $create->ip('column_name', 'placeholder...');

URL输入框

url输入框

  1. $create->url('column_name', 'placeholder...');

密码(password)

密码输入框

  1. $create->password('column_name', 'placeholder...');

手机号(mobile)

手机号输入框

  1. $create->mobile('column_name', 'placeholder...');

整数(integer)

整形数字输入框

  1. $create->integer('column_name', 'placeholder...');

下拉选框(select)

单选框

  1. $create->select('column_name', 'placeholder...')->options([
  2. 1 => 'foo',
  3. 2 => 'bar',
  4. ]);

下拉选框多选(multipleSelect)

多选框

  1. $create->multipleSelect('column_name', 'placeholder...')->options([
  2. 1 => 'foo',
  3. 2 => 'bar',
  4. ]);

标签(tags)

  1. $create->tags('column_name', 'placeholder...')->options([
  2. 1 => 'foo',
  3. 2 => 'bar',
  4. ]);

弹窗选择器(selectResource)

通过selectResource表单可以构建一个弹窗选择器,可以从弹窗里面选择表格数据,并且支持数据筛选等操作。

  1. $form->selectResource('user')
  2. ->path('auth/users') // 设置表格页面链接
  3. ->options(function ($v) { // 显示已选中的数据
  4. if (!$v) return $v;
  5. $userModel = config('admin.database.users_model');
  6. return $userModel::find($v)->pluck('name', 'id');
  7. });
  8. // 设置为多选
  9. $form->selectResource('user')
  10. ->path('auth/users')
  11. ->multiple() // 设置为多选
  12. ->options(function ($v) {
  13. ...
  14. });
  15. // 限制最大选择数量
  16. $form->selectResource('user')
  17. ->path('auth/users')
  18. ->multiple(3) // 最多选择3个选项
  19. ->options(function ($v) {
  20. ...
  21. });

然后设置你的路由app/Admin/routes.php

{tip} 这里的添加路由只是示例,如果是新增的控制器需要加路由,如果路由已经存在则不需要再添加。

  1. $router->resource('auth/users', 'UserController');

auth/users页面实现代码如下:

  1. <?php
  2. use Dcat\Admin\Models\Administrator;
  3. use Dcat\Admin\IFrameGrid;
  4. use Dcat\Admin\Grid;
  5. use Dcat\Admin\Controllers\AdminController;
  6. class UserController extends AdminController
  7. {
  8. protected function iFrameGrid()
  9. {
  10. $grid = new IFrameGrid(new Administrator());
  11. // 指定行选择器选中时显示的值的字段名称
  12. // 指定行选择器选中时显示的值的字段名称
  13. // 指定行选择器选中时显示的值的字段名称
  14. // 如果表格数据中带有 “name”、“title”或“username”字段,则可以不用设置
  15. $grid->rowSelector()->titleColumn('username');
  16. $grid->id->sortable();
  17. $grid->username;
  18. $grid->name;
  19. $grid->filter(function (Grid\Filter $filter) {
  20. $filter->equal('id');
  21. $filter->like('username');
  22. $filter->like('name');
  23. });
  24. return $grid;
  25. }
  26. }

效果

快捷创建 - 图2

日期时间选择

时间日期输入框

  1. $create->datetime('column_name', 'placeholder...');

时间选择(time)

时间输入框

  1. $create->time('column_name', 'placeholder...');

日期选择

  1. $create->date('column_name', 'placeholder...');