dcat-admin

dcat-admin


快捷创建

<h1>快捷创建</h1> <p>在表格中开启这个功能之后,会在表格头部增加一个<code>form</code>表单来创建数据,对于一些简单的表格页面,可以方便快速创建数据,不用跳转到创建页面操作</p> <p>&lt;a href=&quot;{{public}}/assets/img/screenshots/quick-create.png&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;{{public}}/assets/img/screenshots/quick-create.png&quot; style=&quot;box-shadow:0 1px 6px 1px rgba(0, 0, 0, 0.12)&quot; width=&quot;100%&quot;&gt; &lt;/a&gt;</p> <h3>基本使用</h3> <p>&gt; {tip} 需要注意的是,快捷创建表单中的每一项,在<code>form</code>表单页面要设置相同类型的表单项。</p> <pre><code class="language-php">$grid-&amp;gt;quickCreate(function (Grid\Tools\QuickCreate $create) { $create-&amp;gt;text('name', '名称'); $create-&amp;gt;email('email', '邮箱'); });</code></pre> <h3>设置提交地址</h3> <pre><code class="language-php">$grid-&amp;gt;quickCreate(function (Grid\Tools\QuickCreate $create) { $create-&amp;gt;action('auth/users'); $create-&amp;gt;method('GET'); });</code></pre> <p>表单支持的表单项有下面的几种类型</p> <h3>文本(text)</h3> <p>文本输入框</p> <pre><code class="language-php">$create-&amp;gt;text('column_name', 'placeholder...');</code></pre> <h3>隐藏表单(hidden)</h3> <p>文本输入框</p> <pre><code class="language-php">$create-&amp;gt;hidden('column_name');</code></pre> <h3>邮箱(email)</h3> <p>邮箱输入框</p> <pre><code class="language-php">$create-&amp;gt;email('column_name', 'placeholder...');</code></pre> <h3>IP输入框</h3> <p>ip地址输入框</p> <pre><code class="language-php">$create-&amp;gt;ip('column_name', 'placeholder...');</code></pre> <h3>URL输入框</h3> <p>url输入框</p> <pre><code class="language-php">$create-&amp;gt;url('column_name', 'placeholder...');</code></pre> <h3>密码(password)</h3> <p>密码输入框</p> <pre><code class="language-php">$create-&amp;gt;password('column_name', 'placeholder...');</code></pre> <h3>手机号(mobile)</h3> <p>手机号输入框</p> <pre><code class="language-php">$create-&amp;gt;mobile('column_name', 'placeholder...');</code></pre> <h3>整数(integer)</h3> <p>整形数字输入框</p> <pre><code class="language-php">$create-&amp;gt;integer('column_name', 'placeholder...');</code></pre> <h3>下拉选框(select)</h3> <p>单选框</p> <pre><code class="language-php">$create-&amp;gt;select('column_name', 'placeholder...')-&amp;gt;options([ 1 =&amp;gt; 'foo', 2 =&amp;gt; 'bar', ]);</code></pre> <h3>下拉选框多选(multipleSelect)</h3> <p>多选框</p> <pre><code class="language-php">$create-&amp;gt;multipleSelect('column_name', 'placeholder...')-&amp;gt;options([ 1 =&amp;gt; 'foo', 2 =&amp;gt; 'bar', ]);</code></pre> <h3>标签(tags)</h3> <pre><code class="language-php">$create-&amp;gt;tags('column_name', 'placeholder...')-&amp;gt;options([ 1 =&amp;gt; 'foo', 2 =&amp;gt; 'bar', ]);</code></pre> <h3>弹窗选择器(selectResource)</h3> <p>通过<code>selectResource</code>表单可以构建一个弹窗选择器,可以从弹窗里面选择表格数据,并且支持数据筛选等操作。</p> <pre><code class="language-php"> $form-&amp;gt;selectResource('user') -&amp;gt;path('auth/users') // 设置表格页面链接 -&amp;gt;options(function ($v) { // 显示已选中的数据 if (!$v) return $v; $userModel = config('admin.database.users_model'); return $userModel::find($v)-&amp;gt;pluck('name', 'id'); }); // 设置为多选 $form-&amp;gt;selectResource('user') -&amp;gt;path('auth/users') -&amp;gt;multiple() // 设置为多选 -&amp;gt;options(function ($v) { ... }); // 限制最大选择数量 $form-&amp;gt;selectResource('user') -&amp;gt;path('auth/users') -&amp;gt;multiple(3) // 最多选择3个选项 -&amp;gt;options(function ($v) { ... }); </code></pre> <p>然后设置你的路由<code>app/Admin/routes.php</code></p> <p>&gt; {tip} 这里的添加路由只是示例,如果是新增的控制器需要加路由,如果路由已经存在则不需要再添加。</p> <pre><code class="language-php">$router-&amp;gt;resource('auth/users', 'UserController');</code></pre> <p><code>auth/users</code>页面实现代码如下:</p> <pre><code class="language-php">&amp;lt;?php use Dcat\Admin\Models\Administrator; use Dcat\Admin\IFrameGrid; use Dcat\Admin\Grid; use Dcat\Admin\Controllers\AdminController; class UserController extends AdminController { protected function iFrameGrid() { $grid = new IFrameGrid(new Administrator()); // 指定行选择器选中时显示的值的字段名称 // 指定行选择器选中时显示的值的字段名称 // 指定行选择器选中时显示的值的字段名称 // 如果表格数据中带有 “name”、“title”或“username”字段,则可以不用设置 $grid-&amp;gt;rowSelector()-&amp;gt;titleColumn('username'); $grid-&amp;gt;id-&amp;gt;sortable(); $grid-&amp;gt;username; $grid-&amp;gt;name; $grid-&amp;gt;filter(function (Grid\Filter $filter) { $filter-&amp;gt;equal('id'); $filter-&amp;gt;like('username'); $filter-&amp;gt;like('name'); }); return $grid; } }</code></pre> <p>效果</p> <p>&lt;a href=&quot;{{public}}/assets/img/screenshots/select-resource.png&quot; target=&quot;_blank&quot;&gt; &lt;img src=&quot;{{public}}/assets/img/screenshots/select-resource.png&quot; style=&quot;box-shadow:0 1px 6px 1px rgba(0, 0, 0, 0.12)&quot; width=&quot;100%&quot;&gt; &lt;/a&gt;</p> <h3>日期时间选择</h3> <p>时间日期输入框</p> <pre><code class="language-php">$create-&amp;gt;datetime('column_name', 'placeholder...');</code></pre> <h3>时间选择(time)</h3> <p>时间输入框</p> <pre><code class="language-php">$create-&amp;gt;time('column_name', 'placeholder...');</code></pre> <h3>日期选择</h3> <pre><code class="language-php">$create-&amp;gt;date('column_name', 'placeholder...');</code></pre>

页面列表

ITEM_HTML