BETA版本更新日志
<h1>BETA版本更新日志</h1>
<h2>v2.2.2-beta</h2>
<p>发布时间 2022/6/27</p>
<h3>升级版本</h3>
<p>逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.2.2-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>BUG 修复</h3>
<ol>
<li>修复 Grid 表格当字段值为<code>0</code>时无法显示问题</li>
</ol>
<h2>v2.2.1-beta</h2>
<p>发布时间 2022/6/26</p>
<h3>升级版本</h3>
<p>逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.2.1-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1. 日夜模式切换支持多开场景 (<a href="https://github.com/jqhph/dcat-admin/pull/1672">#1672 by @ReedSun</a>)</strong></p>
<p><strong>2. 表单增加 <code>override</code> 方法实现文件覆盖 (<a href="https://github.com/jqhph/dcat-admin/pull/1706">#1706 by @laradocs</a>)</strong></p>
<pre><code class="language-php">$form-&gt;file('file')-&gt;override();
$form-&gt;image('img')-&gt;override();</code></pre>
<p><strong>3. 支持嵌套资源型控制器 (<a href="https://github.com/jqhph/dcat-admin/pull/1725">#1725 by @lddtime</a>)</strong></p>
<p><strong>4. 支持在array/hasMany表单中使用when控制表单显示功能 (<a href="https://github.com/jqhph/dcat-admin/pull/1776">#1776 by @rainhon</a>)</strong></p>
<pre><code class="language-php">$form-&gt;array($column, function ($form) {
$form-&gt;radio('radio')
-&gt;when([1, 4], function (Form $form) {
$form-&gt;text('text1');
$form-&gt;text('text2');
$form-&gt;text('text3');
})
-&gt;when(2, function (Form $form) {
$form-&gt;editor('editor');
})
-&gt;when(3, function (Form $form) {
$form-&gt;image('image');
})
-&gt;options([...])
-&gt;default(1);
});</code></pre>
<p><strong>5. 页面组件 <code>tab</code> 刷新后可选中对应选项 (<a href="https://github.com/jqhph/dcat-admin/pull/1689">#1689 by @iljalukin</a>)</strong></p>
<pre><code class="language-php">use Dcat\Admin\Widgets\Tab;
$tab = new Tab();
$tab-&gt;add('tab1', ..., 'id1');
$tab-&gt;add('tab2', ..., 'id2');</code></pre>
<p><strong>6. 页面组件 <code>table</code> 没有数据时显示 <code>No data.</code> (<a href="https://github.com/jqhph/dcat-admin/pull/1678">#1678 by @shacky</a>)</strong></p>
<h3>BUG 修复</h3>
<ol>
<li>修复 laravel9 中代码生成器报错问题</li>
<li>修复 Laravel9 发布语言文件路径错误 (<a href="https://github.com/jqhph/dcat-admin/pull/1688">#1688 by @laradocs</a>)</li>
<li>
<p>修复 <code>tab</code> 选项卡重复加载后不选中错误 (<a href="https://github.com/jqhph/dcat-admin/pull/1689">#1689 by @iljalukin</a>)</p>
</li>
<li>
<p>修复代码生成器提交失败保存状态 (<a href="https://github.com/jqhph/dcat-admin/pull/1690">#1690 @by laradocs</a>)</p>
</li>
<li>
<p>修复 <code>HasMany</code>表单中使用 <code>map</code> 字段错误问题 (<a href="https://github.com/jqhph/dcat-admin/pull/1701">#1701 by @mojiajuzi</a>)</p>
</li>
<li>
<p>修复代码生成器生成 Laravel9 语言文件路径错误 (<a href="https://github.com/jqhph/dcat-admin/pull/1711">#1711 by @laradocs</a>)</p>
</li>
<li>
<p>修复上传文件 <code>options</code> 被覆盖错误 (<a href="https://github.com/jqhph/dcat-admin/pull/1747">#1747 by @laradocs</a>)</p>
</li>
<li>
<p>修复 Grid 中 <code>editable</code> 方法触发 <code>xss</code> 错误 (<a href="https://github.com/jqhph/dcat-admin/pull/1755">#1755 by @laradocs</a>)</p>
</li>
<li>
<p>修复 Form 中 <code>number</code> 调用 <code>disable</code> 方法对自增减按钮失效 (<a href="https://github.com/jqhph/dcat-admin/pull/1771">#1771 @by @laradocs</a>)</p>
</li>
<li>
<p>修复 Form 中使用 <code>layout</code> 布局后 <code>HasMany</code> 字段删除子字段后验证规则依然生效问题(<a href="https://github.com/jqhph/dcat-admin/pull/1781">#1781 @by laradocs</a>)</p>
</li>
<li>
<p>修复 PHP8.1 中触发 <code>ltrim</code> 和 <code>htmlentities</code> 方法异常 (<a href="https://github.com/jqhph/dcat-admin/pull/1783">#1783 by @laradocs</a>)</p>
</li>
<li>
<p>修复 Grid 使用<code>$grid-&gt;column('xxx.xxx')</code>无法导出关联模型字段值问题 (<a href="https://github.com/jqhph/dcat-admin/pull/1740">#1740 by @xyzzxy123</a>)</p>
</li>
<li>
<p>修复项目路径中含有<code>Admin</code>造成代码生成器无法正常解析命名空间的问题 (<a href="https://github.com/jqhph/dcat-admin/pull/1778">#1778 by @GMD170629</a>)</p>
</li>
<li>修复 <code>embeds</code> 字段无法上传文件问题 (<a href="https://github.com/jqhph/dcat-admin/pull/1770">#1770 by @pianzhou2021</a>)</li>
</ol>
<h2>v2.2.0-beta</h2>
<p>发布时间 2022/2/20</p>
<p>升级方法,逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.2.0-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加对Laravel9.x版本的支持</strong></p>
<p><strong>2.支持在<code>hasMany</code>以及<code>array</code>表单中使用<code>table</code>表单</strong></p>
<p>用法如下</p>
<pre><code class="language-php">$form-&gt;array($field, function ($form) {
$form-&gt;table('table_json', function ($form) {
$form-&gt;text('title');
...
});
});</code></pre>
<p><strong>3.数据表格过滤器增加findInSet方法</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1639">#1639 @guanguans</a> sql: <code>... WHERE FIND_IN_SET(&quot;$input&quot;, $column)</code>,示例</p>
<pre><code class="language-php">$grid-&gt;filter(function ($filter) {
$filter-&gt;findInSet($field);
});</code></pre>
<p><strong>4.调整代码生成器选择默认目录逻辑</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1514">#1627 @Edwin</a> 新版本将会根据配置参数<code>admin.directory</code>设置的目录作为默认目录,默认为<code>Admin</code>。</p>
<h3>BUG修复</h3>
<ol>
<li>修复<code>table</code>表单不支持<code>help</code>方法问题 <a href="https://github.com/jqhph/dcat-admin/pull/1616">#1616 @jcbt</a></li>
<li>修复启用多应用后注册扩展路由会导致默认应用首页无法访问问题</li>
<li>修复无法隐藏弹窗表单重置按钮问题 <a href="https://github.com/jqhph/dcat-admin/pull/1631">#1631 @Sparkinzy</a></li>
<li>修复<code>autocomplete</code>当字段值为数字时js组件报错问题 <a href="https://github.com/jqhph/dcat-admin/pull/1661">#1661 @Sparkinzy</a></li>
<li>修复设置路由前缀为"/"时权限管理表单无法读取路由信息问题</li>
</ol>
<h2>v2.1.7-beta</h2>
<p>发布时间 2021/12/25</p>
<p>升级方法,逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.7-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加<code>admin_redirect</code>函数</strong></p>
<p>跳转到指定<code>url</code>,此函数可用于代替<code>redirect</code>函数,支持<code>pjax</code>以及<code>ajax</code>请求</p>
<pre><code class="language-php">// 不需要添加admin前缀
return admin_redirect('auth/users');
// 如果想要跳转到非admin前缀的链接,需要传递完整url链接
return admin_redirect(url('users'));</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复使用文件(file)上传表单删除文件时会报<code>destroyThumbnail</code>问题</li>
<li>修复当<code>hasMany</code>/<code>array</code>/<code>table</code>表单字段名与子表单字段名一样时无法删除行数据问题</li>
</ol>
<h2>v2.1.6-beta</h2>
<p>发布时间 2021/12/12</p>
<p>升级方法,逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.6-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加<code>Form::autocomplete()</code>表单</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1514">#1514 @Edwin</a> 此表单可以在填写表单时进行对表单值进行搜索,并把结果展示在下拉列表中,用法如下</p>
<pre><code class="language-php">$form-&gt;autocomplete($column[, $label])-&gt;options(['foo', 'bar', ...]);</code></pre>
<p>效果如下
<img src="https://cdn.learnku.com/uploads/images/202112/12/38389/ArVNSvChag.png!large" alt="" /></p>
<p>也可以从远程API中获取数据</p>
<pre><code class="language-php">// ajax 函数的第一个参数为 ajax url, 第二个参数为 valueField(可选), 第三个参数为 groupField(可选)
$form-&gt;autocomplete($column[, $label])-&gt;ajax('/countries', 'name', 'region');</code></pre>
<p>远程API 服务端的请求参数为query,示例代码如下:</p>
<pre><code class="language-php">class CountryController extends AdminController
{
public function search()
{
$countries = Country::when(request('query'), function ($query, $value) {
$query-&gt;where('name', 'like', &quot;%{$value}%&quot;);
})-&gt;get();
return Admin::json($countries-&gt;toArray());
}
}</code></pre>
<p>更多用法参考文档<a href="model-form-fields.md#autocomplete">数据表单 - 字段使用 - autocomplete</a></p>
<p><strong>2.图片/文件上传支持<code>arttribute</code>方法</strong>
<a href="https://github.com/jqhph/dcat-admin/pull/1510">#1510 @iwzh</a> 通过<code>attribute</code>方法可以给文件上传的隐藏域表单设置属性,用法如下</p>
<pre><code class="language-php">$form-&gt;file($column)-&gt;attribute(['foo' =&gt; 'bar', ...]);</code></pre>
<p><strong>3.数据表格增加<code>between</code>表头过滤器</strong>
<a href="https://github.com/jqhph/dcat-admin/pull/1510">#1510 @iwzh</a> 用法如下</p>
<pre><code class="language-php">$grid-&gt;column('created_at')-&gt;filter(
Grid\Column\Filter\Between::make()-&gt;datetime()
);</code></pre>
<p><strong>4.模型树增加<code>depthColumn</code>用于保存当前层级</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1510">#1549 @weiwait</a></p>
<p>用法如下</p>
<pre><code class="language-php">class Category extends Model
{
use ModelTree;
// 定义depthColumn属性后,将会在数据表保存当前行的层级
protected $depthColumn = 'depth';
}</code></pre>
<p><strong>5.表单<code>Row</code>布局可独立设置宽度</strong>
<a href="https://github.com/jqhph/dcat-admin/pull/1530">#1530 @iwzh</a> 用法如下</p>
<pre><code class="language-php">$form-&gt;row(function ($row) {
// 给所有字段设置默认宽度
$row-&gt;defaultWidth(3);
// 每个字段独立设置宽度
$row-&gt;width(4)-&gt;text(...);
});</code></pre>
<h3>功能改进</h3>
<p><strong>1.调整数据表格导出数据时rows方法回调函数接受的参数类型为Collection</strong>
<a href="https://github.com/jqhph/dcat-admin/pull/1584">#1584 @jourdon</a> 用法如下</p>
<pre><code class="language-php">use Illuminate\Support\Collection;
$grid-&gt;export()-&gt;rows(function (Collection $rows) {
foreach ($rows as $index =&gt; &amp;$row) {
// $row 的格式为模型
dd($row);
}
return $rows;
});</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复使用OSS上传图片缩略图报错问题 <a href="https://github.com/jqhph/dcat-admin/pull/1499">#1499 @jorry2008</a></li>
<li>修复数据表格筛选默认项不能设置为<code>0</code>问题 <a href="https://github.com/jqhph/dcat-admin/pull/1506">#1506 @liushoukun</a></li>
<li>修复一对一关联关系表单验证规则异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/1516">#1516</a></li>
<li>修复表单文件上传时,若已添加过文件则无法继续拖拽上传问题 <a href="https://github.com/jqhph/dcat-admin/pull/1541">#1541 @hmilyfyj</a></li>
<li>修复分页器在<code>LazyRenderable</code>下切换时导致样式丢失的问题 <a href="https://github.com/jqhph/dcat-admin/pull/1539">#1539 @jyiL</a></li>
<li>修复数据表格使用MongoDB时分页<code>perPage</code>数据类型错误问题 <a href="https://github.com/jqhph/dcat-admin/pull/1555">#1555 @SmallRuralDog</a></li>
<li>修复页面使用<code>pjax</code>渲染后<code>pjax</code>无法再次初始化<code>a</code>标签问题 <a href="https://github.com/jqhph/dcat-admin/pull/1576">#1576 @xyzzxy123</a></li>
<li>修复数据表格<code>Column::switch()</code>方法<code>refresh</code>参数无效问题 <a href="https://github.com/jqhph/dcat-admin/pull/1595">#1595 @wxfjamdc</a></li>
<li>修复多图片上传上传多个图片会导致旧图片缩略图被删除问题 <a href="https://github.com/jqhph/dcat-admin/issues/1556">#1556</a></li>
</ol>
<h2>v2.1.5-beta</h2>
<p>发布时间 2021/9/16</p>
<p>升级方法,逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.4-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复管理员列表点击查看权限弹窗展示为空问题</li>
<li>修复数据表格关联关系表字段<code>非equal</code>查询均不生效问题</li>
<li>修复数据表格<code>column</code>使用<code>if</code>方法后无法在<code>displayer</code>中取得原始字段值问题</li>
</ol>
<h2>v2.1.3-beta</h2>
<p>发布时间 2021/9/14</p>
<p>升级方法,逐步执行以下命令,最后清除<strong>浏览器缓存</strong></p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.3-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>功能改进</h3>
<p><strong>1.重构数据表格行内编辑功能</strong></p>
<p>当前版本重构了<code>editable</code>、<code>checkbox</code>和<code>radio</code>等三种行内编辑表单的<code>UI</code>样式,改为在弹窗中展示表单。并且增加了新的行内编辑表单<code>textarea</code>,效果如下:</p>
<p><img src="https://cdn.learnku.com/uploads/images/202109/14/38389/mX4Za4nj1y.png!large" alt="" />
<img src="https://cdn.learnku.com/uploads/images/202109/14/38389/9A2GdY3nSx.png!large" alt="" />
<img src="https://cdn.learnku.com/uploads/images/202109/14/38389/6Bo4phkB3f.png!large" alt="" />
<img src="https://cdn.learnku.com/uploads/images/202109/14/38389/wViO5EoPBg.png!large" alt="" /></p>
<p><strong>2.配置文件增加<code>favicon</code>参数</strong></p>
<p>从当前版本开始可以在<code>config/admin.php</code>中配置<code>favicon</code>链接,参数名为<code>favicon</code></p>
<p><strong>3.数据表单提交时支持展示被抛出异常的<code>message</code></strong></p>
<p>从当前版本开始,假如提交表单时抛出异常如下</p>
<pre><code class="language-php">$form-&gt;submitted(function ($form) {
throw new \Exception('禁止访问');
});</code></pre>
<p>那么将可以在页面中看到如下提示</p>
<p><img src="https://cdn.learnku.com/uploads/images/202109/14/38389/S0KtwNRYGK.png!large" alt="" /></p>
<p><strong>5.优化<code>array</code>、<code>table</code>表单在工具表单中的使用</strong></p>
<p>在旧版本<code>Widgtet/Form</code>中如果使用了<code>array</code>、<code>table</code>表单,并且在<code>array</code>、<code>table</code>表单中使用了文件上传表单时,需要自定义文件上传地址才能正常上传,所以此次版本对这个功能做了优化,更新版本之后将不需要再自定义上传地址</p>
<pre><code class="language-php">$this-&gt;array('...', function ($form) {
// 无需自定义上传地址
$form-&gt;image('img');
});</code></pre>
<p><strong>4.增加数据表单<code>html</code>对<code>addElementClass</code>方法的支持</strong></p>
<p>在旧版本中,<code>addElementClass</code>设置的<code>class</code>无法对<code>html</code>方法生效,所以新版中对此做了改进</p>
<pre><code class="language-php">$form-&gt;html(...)-&gt;addElementClass(['class1', ...]);</code></pre>
<p><strong>5.数据表单图片上传表单访问缩略图时不检查图片是否存在</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1455">@zhaiyuxin103</a></p>
<h3>BUG修复</h3>
<ol>
<li>修复数据表单使用闭包验证规则时无法正确合并问题 <a href="https://github.com/jqhph/dcat-admin/pull/1429">#1429 @Edwin</a></li>
<li>修复文件上传启用<code>sequenceName</code>方法后生成的文件名带有重复后缀问题</li>
<li>修复文件上传表单上传一对一字段设置<code>required</code>验证规则后无法上传文件问题</li>
<li>修复某些操作下出现空白筛选边栏的问题 <a href="https://github.com/jqhph/dcat-admin/pull/1445">#1445 @Abbotton</a></li>
<li>修复<code>selectTable</code>、<code>multipleSelectTable</code>等字段的<code>model</code>方法指定第二个参数无效问题 <a href="https://github.com/jqhph/dcat-admin/pull/1460">#1460 @hhniao</a></li>
<li>修复无法翻译图片上传表单<code>dimensions</code>验证失败提示文案问题</li>
<li>修复当在<code>array</code>、<code>table</code>以及<code>hasMany</code>表单中使用图片上传表单,并且设置<code>dimensions</code>验证规则后无法提交问题</li>
<li>修复多图上传只能预览第一个图片问题</li>
<li>修复表单动态展示如果字段值带小数点时不生效问题</li>
</ol>
<h2>v2.1.2-beta</h2>
<p>发布时间 2021/7/12</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.2-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>功能改进</h3>
<p><strong>1.增加 Grid\Model::apply() 方法</strong></p>
<p>此方法可以应用数据表格的快捷搜索和筛选过滤的查询条件,用法示例如下</p>
<p>在旧版本中,使用快捷搜索和筛选过滤的查询条件非常的麻烦</p>
<pre><code class="language-php">$grid-&gt;header(function ($collection) use ($grid) {
$query = Model::query();
// 拿到表格筛选 where 条件数组进行遍历
$grid-&gt;model()-&gt;getQueries()-&gt;unique()-&gt;each(function ($value) use (&amp;$query) {
if (in_array($value['method'], ['paginate', 'get', 'orderBy', 'orderByDesc'], true)) {
return;
}
$query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []);
});
// 查出统计数据
$data = $query-&gt;get();
// 自定义组件
return new Card($data);
});</code></pre>
<p>从当前版本开始可以使用<code>apply</code>方法简化上面的代码</p>
<pre><code class="language-php">$grid-&gt;header(function ($collection) use ($grid) {
$query = Model::query();
// 拿到表格筛选 where 条件数组进行遍历
$grid-&gt;model()-&gt;apply($query);
// 查出统计数据
$data = $query-&gt;get();
// 自定义组件
return new Card($data);
});</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复数据表格无法禁用批量删除按钮问题</li>
<li>修复高德地图表单有坐标时没有缩放问题 <a href="https://github.com/jqhph/dcat-admin/pull/1377">#1377 @gzxy-0102</a></li>
<li>修复文件上传表单下载按钮不显示问题 <a href="https://github.com/jqhph/dcat-admin/issues/1405">#1405</a></li>
<li>修复数据表格使用了<code>simplePaginate</code>后数据筛选参数不生效问题 <a href="https://github.com/jqhph/dcat-admin/issues/1405">#1405</a></li>
</ol>
<h2>v2.1.1-beta</h2>
<p>发布时间 2021/7/12</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.1-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加模型树expand方法控制是否展开所有子节点数据</strong></p>
<p>默认展开所有子节点数据</p>
<pre><code class="language-php">// 展开子节点数据
$tree-&gt;expand();
// 收起所有子节点数据
$tree-&gt;expand(false);</code></pre>
<p><strong>2.增加文件上传表单下载功能</strong></p>
<pre><code class="language-php">$form-&gt;file('...')-&gt;downloadable();</code></pre>
<p><strong>3.增加高德地图表单</strong></p>
<p>在配置文件<code>config/admin.php</code>中设置 <a href="https://github.com/jqhph/dcat-admin/pull/1331">#1331 @gaizhixin</a></p>
<pre><code class="language-php"> 'map' =&gt; [
'provider' =&gt; 'amap',
'keys' =&gt; [
// 配置高德地图的key
'amap' =&gt; 'key',
],
],</code></pre>
<p><strong>4.新增addElementClass方法用于给表单字段设置自定义class</strong></p>
<pre><code class="language-php">// 如果不希望添加前缀,则第二个参数设置为false
$form-&gt;text(...)-&gt;addElementClass(['class1', 'class2'], false);</code></pre>
<p><strong>5.增加表格批量操作设置下拉菜单分割线功能</strong></p>
<p>支持以下两种方式</p>
<pre><code class="language-php">// 方式1
$grid-&gt;batchActions(function ($batch) {
$batch-&gt;add(...);
// 显示分割线
$batch-&gt;divider();
...
});
// 方式2
use Dcat\Admin\Grid\Tools\ActionDivider;
$grid-&gt;batchActions([
new Action1(),
...
new ActionDivider(),
...
]);</code></pre>
<h3>功能改进</h3>
<p><strong>1.table表单支持自定义view</strong></p>
<pre><code class="language-php">$this-&gt;table(...)-&gt;setView('...');</code></pre>
<p><strong>2.优化菜单收缩后的操作体验以及UI</strong></p>
<p>当菜单收缩后,光标移动上去后自动展开如果点击了菜单,跳转后会自动收缩回去;并且修复了<code>mini-logo</code>显示异常的问题</p>
<p><strong>3.数据表格行操作列当没有任何操作按钮时不再显示空的下拉菜单</strong></p>
<p>数据表格行操作列当没有任何操作按钮时不再显示空的下拉菜单 <a href="https://github.com/jqhph/dcat-admin/pull/1331">#1327 @jiangyuntao</a></p>
<p><strong>4.优化图片上传表单图片的显示效果</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1366">#1366 @ShermanTsang</a></p>
<h3>BUG修复</h3>
<ol>
<li>修复树形表格(<code>tree</code>)展开子节点时如果无数据<code>Grid::__toString()</code>会报错问题</li>
<li>修复启用数据表格异步渲染功能后减少筛选条件无效问题</li>
<li>修复表格异步渲染筛选项数量显示异常问题</li>
<li>修复设置表单字段<code>class</code>会覆盖默认<code>class</code>问题</li>
<li>修复关闭<code>debug</code>模式后访问无权限页面会显示异常报文问题</li>
<li>修复配置文件自定义批量删除按钮后 <code>Grid::disableBatchDelete</code> 失效问题</li>
<li>修复菜单缩进后三级菜单无法隐藏问题</li>
<li>修复当设置为无路由前缀时,内置的权限系统点击<code>新增权限</code>报错的问题 </li>
<li>修复当禁用内置权限系统时没有禁用掉权限中间件无效问题</li>
<li>修复<code>select</code>以及<code>selectTable</code>的<code>model</code>传递了第二个参数为非<code>id</code>时无法显示编辑数据的问题</li>
<li>修复部分表单设置大小样式未生效的问题 <a href="https://github.com/jqhph/dcat-admin/pull/1361">#1361 @Abbotton</a></li>
<li>修复表格排序功能无法兼容<code>Grid\Model::latest</code>以及<code>oldest</code>方法问题</li>
</ol>
<h2>v2.1.0-beta</h2>
<p>发布时间 2021/5/23</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.1.0-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加表格异步渲染功能</strong></p>
<p>当页面的表格展示的数据特别多(列多行多),并且加载的组件也较多时,可能会出现卡顿的现象,此时可以使用表格异步渲染功能,可以有效地减轻页面卡顿的情况:</p>
<pre><code class="language-php">// 启用表格异步渲染功能
$grid-&gt;async();</code></pre>
<p>需要注意的是,如果页面没有出现明显的卡顿现象,则无需启用此功能,并且如果页面中存在多个数据表格,那么也无法使用此功能!详细用法参考<a href="model-grid-async.md">数据表格 - 异步渲染</a></p>
<h3>功能改进</h3>
<p><strong>1.支持<code>Laravel Octane 1.x</code>版本</strong></p>
<p>此次版本适配了<code>Laravel Octane 1.x</code>版本的相关变动,具体用法参考<a href="laravel-octane.md">Laravel Octane</a>。</p>
<p><strong>2.调用<code>expand(false)</code>可以禁止自动弹出过滤器侧栏</strong></p>
<pre><code class="language-php">// 禁止自动弹出过滤器侧边栏
$grid-&gt;filter(function ($filter) {
$filter-&gt;expand(false);
...
});</code></pre>
<p><strong>3.升级<code>tinymce</code>至<code>v5.8.0</code>版本</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1263">@yiming0</a></p>
<p><strong>4.权限以及角色页面绑定菜单后自动清除菜单缓存</strong></p>
<h3>BUG修复</h3>
<ol>
<li>修复<code>withConstraints</code>方法对详情页<code>url</code>无效问题 <a href="https://github.com/jqhph/dcat-admin/issues/1232">#1232</a></li>
<li>修复多图/文件上传表单删除图片时表单值会转化成关联数组问题</li>
<li>修复百度地图组件在启用<code>https</code>后无法使用问题 <a href="https://github.com/jqhph/dcat-admin/issues/1162">#1162</a></li>
</ol>
<h2>v2.0.24-beta</h2>
<p>发布时间 2021/4/30</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.24-beta&quot;
php artisan admin:update # 不会覆盖翻译文件 menu.php 以及 global.php</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加创建或编辑角色以及权限时可直接绑定菜单功能</strong></p>
<p>在角色和权限的创建以及编辑页面可以直接绑定菜单,此功能默认开启,可以通过配置参数<code>admin.menu.role_bind_menu</code>以及<code>admin.menu.permission_bind_menu</code>进行关闭,效果如下</p>
<p><img src="https://cdn.learnku.com/uploads/images/202104/30/38389/OUgvZVSA5l.jpg!large" alt="" /></p>
<p><strong>2.新增<code>Form\Tree::treeStatus()</code>方法,允许单独选择父节点</strong></p>
<p>用法</p>
<pre><code class="language-php">$form-&gt;tree('xxx')
-&gt;treeState(false) # 允许单独选择父节点
-&gt;setTitleColumn('title')
-&gt;nodes(...);</code></pre>
<p>效果
<img src="https://cdn.learnku.com/uploads/images/202104/30/38389/oChwzky2BT.gif!large" alt="" /></p>
<h3>BUG修复</h3>
<ol>
<li>修复多应用情况下无法使用域名区分应用问题</li>
<li>修复<code>Admin::pjax()</code>方法未声明为<code>static</code>问题</li>
<li>修复<code>grid filter checkbox</code>只能选中多个选项后只有单个选项生效问题 <a href="https://github.com/jqhph/dcat-admin/pull/1174">@outer199</a></li>
<li>修复菜单默认图标设置无效问题</li>
<li>修复<code>php7.4</code>或以上版本中使用<code>embeds</code>表单时报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/1204">#1204</a></li>
<li>修复分步表单下使用<code>$form-&gt;list(...)-&gt;limit(...);</code>参数校验不通过后刷新页面报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/1206">#1206</a></li>
<li>修复禁用<code>pjax</code>后编辑和创建完成后无法进行跳转问题 <a href="https://github.com/jqhph/dcat-admin/issues/1208">#1208</a></li>
</ol>
<h2>v2.0.23-beta</h2>
<p>发布时间 2021/4/18</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.23-beta&quot;
php artisan admin:update</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加对<code>Laravel Octane</code>的支持</strong></p>
<p><a href="https://github.com/laravel/octane">Laravel Octane</a> 是一个基于 <code>Swoole/RoadRunner</code> 驱动的可以提升 <code>Laravel</code> 框架性能的项目,安装后可以大幅提升<code>Laravel</code>项目的性能,<code>Dcat Admin</code>也兼容了<code>Laravel Octane</code>环境,只需在配置文件<code>config/octane.php</code>中加入如下配置即可:</p>
<pre><code class="language-php">
'listeners' =&gt; [
...,
RequestReceived::class =&gt; [
...Octane::prepareApplicationForNextOperation(),
...Octane::prepareApplicationForNextRequest(),
// 开启对 Dcat Admin 的支持
Dcat\Admin\Octane\Listeners\FlushAdminState::class,
],
...
], </code></pre>
<p>> <a href="https://github.com/laravel/octane">Laravel Octane</a>目前仍处于<code>beta</code>版本阶段,关于<a href="https://github.com/laravel/octane">Laravel Octane</a>的安装与更多介绍请前往文档 <a href="https://github.com/laravel/octane">https://github.com/laravel/octane</a> 查看。</p>
<p><strong>2.增加表格简化分页(<code>simplePaginate</code>)功能</strong></p>
<p>启用 <code>simplePaginate</code> 功能后会使用<code>Laravel</code>的<a href="https://laravel.com/docs/8.x/pagination#simple-pagination">simplePaginate</a>功能进行分页,当数据量较大时可以大幅提升页面的响应速度,但需要注意的是,使用此功能后将不会查询数据表的<strong>总行数</strong>。</p>
<pre><code class="language-php">// 启用
$grid-&gt;simplePaginate();
// 禁用
$grid-&gt;simplePaginate(false);</code></pre>
<h3>功能改进</h3>
<p><strong>1.重构翻译功能</strong></p>
<p>在过去版本中,当使用<a href="lazy.md">异步表单</a>以及<a href="lazy.md">异步表格</a>功能时无法自动对字段名称进行翻译,从当前版本开始可以通过<code>translation</code>属性指定翻译文件的路径进行自动翻译,用法如下</p>
<pre><code class="language-php">&lt;?php
namespace App\Admin\Forms;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;
use Dcat\Admin\Contracts\LazyRenderable;
class MyForm extends Form implements LazyRenderable
{
use LazyWidget;
/**
* 指定翻译文件名称
*
* @var string
*/
protected $translation = 'my-form';
public function form()
{
$this-&gt;text('field1');
$this-&gt;text('field2');
...
}
...
}</code></pre>
<p>语言包<code>resources/lang/{locale}/my-form.php</code>内容如下</p>
<pre><code class="language-php">&lt;?php
return [
'fields' =&gt; [
'field1' =&gt; '字段1',
'field2' =&gt; '字段2',
...
],
];</code></pre>
<p>并且在控制器中也可以指定当前翻译文件的路径</p>
<pre><code class="language-php">use Dcat\Admin\Http\Controllers\AdminController;
class UserController extends AdminController
{
/**
* 指定翻译文件名称
*
* @var string
*/
protected $translation = 'user1';
...
}</code></pre>
<p>当然也可以通过<code>Admin::translation()</code>方法指定</p>
<pre><code class="language-php">use Dcat\Admin\Admin;
Admin::translation('user');</code></pre>
<p><strong>2.增加表格相关配置参数</strong></p>
<p>增加数个表格相关的配置文件参数<code>admin.grid.*</code>:</p>
<pre><code class="language-php"> 'grid' =&gt; [
// 表格行操作类
'grid_action_class' =&gt; Dcat\Admin\Grid\Displayers\DropdownActions::class,
// 表格批量操作类
'batch_action_class' =&gt; Dcat\Admin\Grid\Tools\BatchActions::class,
// 表格分页类
'paginator_class' =&gt; Dcat\Admin\Grid\Tools\Paginator::class,
// 表格行默认的几个操作类配置
'actions' =&gt; [
'view' =&gt; Dcat\Admin\Grid\Actions\Show::class,
'edit' =&gt; Dcat\Admin\Grid\Actions\Edit::class,
'quick_edit' =&gt; Dcat\Admin\Grid\Actions\QuickEdit::class,
'delete' =&gt; Dcat\Admin\Grid\Actions\Delete::class,
'batch_delete' =&gt; Dcat\Admin\Grid\Tools\BatchDelete::class,
],
...
],</code></pre>
<p><strong>3.移除禁用表格分页后显示表格页脚信息</strong></p>
<p>从当前版本开始,如果禁用了表格的分页功能,将不会再显示表格的页脚信息。</p>
<p><strong>4.优化 <code>Filter::panel()</code> 布局间距</strong></p>
<p><strong>5.优化文件发布功能,发布语言包文件时将不再覆盖<code>menu.php</code>以及<code>global.php</code>文件</strong></p>
<p>从当前版本开始,当使用<code>admin:update</code>以及<code>admin:publish --force</code>命令文件时,将不再覆盖<code>menu.php</code>以及<code>global.php</code>文件。</p>
<p><strong>6.更新<code>Tinymce</code>版本至<code>5.6.2</code></strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/1154">@wk1025</a></p>
<h3>BUG修复</h3>
<ol>
<li>修复数据表格中字段类型为<code>Object</code>时报错问题 <a href="https://github.com/jqhph/dcat-admin/pull/1154">@xiaohuilam</a></li>
<li>修复文件上传失败仍然提示上传成功问题</li>
<li>修复权限判断中间件匹配时没有使用传入的<code>$request</code>对象问题 <a href="https://github.com/jqhph/dcat-admin/pull/1157">@asmodai1985</a></li>
<li>修复表单<code>rules</code>方法第二个参数设置<code>message</code>无效问题</li>
<li>修复<code>Helper::array()</code>会把<code>0</code>转为空数组问题</li>
<li>修复行选择器无法选中树形表格子级行问题</li>
<li>修复<code>KeyValue::setValueLabel()</code>方法无效问题</li>
<li>修复<code>hasmany</code>以及<code>table</code>表单删除选项时会重置表单问题</li>
<li>修复表格行操作编辑按钮文本显示错误问题 <a href="https://github.com/jqhph/dcat-admin/pull/1174">@GemaDynamic</a></li>
<li>修复树形表格子级行无法正常使用表单弹窗问题 <a href="https://github.com/jqhph/dcat-admin/issues/1174">#813</a></li>
</ol>
<h2>v2.0.22-beta</h2>
<p>发布时间 2021/4/1</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.22-beta&quot;
php artisan admin:update</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复部分功能缺失<code>CSRF_TOKEN</code>报错问题</li>
<li>修复菜单自动适应高度功能报错问题</li>
</ol>
<h2>v2.0.21-beta</h2>
<p>发布时间 2021/3/30</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.21-beta&quot;
php artisan admin:update</code></pre>
<h3>新增功能</h3>
<p><strong>1.增加表格列选择器<code>ColumnSelector</code>支持持久化存储功能</strong></p>
<p>在配置文件<code>config/admin.php</code>可以配置存储列选择器状态的方式,支持的存储方式如下</p>
<ul>
<li><code>Dcat\Admin\Grid\ColumnSelector\SessionStore</code> 列选择器状态数据保存在<code>session</code>中,仅在登陆状态中有效</li>
<li><code>Dcat\Admin\Grid\ColumnSelector\CacheStore</code> 列选择器状态数据保存在<a href="https://laravel.com/docs/8.x/cache#driver-prerequisites">Laravel Cache</a>缓存系统中,最长可保存<code>300</code>天,并可以通过<code>admin.grid.column_selector.store_params.driver</code>可以配置缓存驱动,默认为<code>file</code></li>
</ul>
<pre><code class="language-php"> 'grid' =&gt; [
...
'column_selector' =&gt; [
'store' =&gt; Dcat\Admin\Grid\ColumnSelector\SessionStore::class,
'store_params' =&gt; [
'driver' =&gt; 'file',
],
],
],</code></pre>
<p><strong>2.增加表格条件判断(<code>if</code>)的终结方法(<code>end</code>)</strong></p>
<pre><code class="language-php">$grid-&gt;column('status')
-&gt;if(...) // 条件1
-&gt;display(...)
-&gt;display(...)
-&gt;if(...) // 条件2
-&gt;display(...)
-&gt;display(...)
-&gt;end() // 终结前面的条件判断
-&gt;display(...); // 所有条件都能生效</code></pre>
<p><strong>3.增加表格行选择器默认选中(<code>check</code>)以及禁止更改选中状态(<code>disable</code>)功能</strong></p>
<p>通过<code>check</code>方法可以设置默认选中的行,此方法接受一个<code>array</code>类型或<code>匿名函数</code>参数</p>
<pre><code class="language-php">// 设置默认选中第 1/3/5 行
$grid-&gt;rowSelector()-&gt;check([0, 2, 4]);
// 传递闭包
$grid-&gt;rowSelector()-&gt;check(function () {
// 设置默认选中第 1/3/5 行
return in_array($this-&gt;_index, [0, 2, 4]);
});
// 在闭包中使用当前行其他字段
$grid-&gt;rowSelector()-&gt;check(function () {
// 设置默认选中 id &gt; 10 的行
return $this-&gt;id &gt; 10;
});</code></pre>
<p>通过<code>disable</code>方法可以设置禁止更改选中状态的行,此方法接受一个<code>array</code>类型或<code>匿名函数</code>参数</p>
<pre><code class="language-php">// 禁止第 1/3/5 行更改选中状态
$grid-&gt;rowSelector()-&gt;disable([0, 2, 4]);
// 传递闭包
$grid-&gt;rowSelector()-&gt;disable(function () {
// 禁止第 1/3/5 行更改选中状态
return in_array($this-&gt;_index, [0, 2, 4]);
});
// 在闭包中使用当前行其他字段
$grid-&gt;rowSelector()-&gt;disable(function () {
// 禁止 id &gt; 10 的行更改选中状态
return $this-&gt;id &gt; 10;
});
// disable 可以和 check 方法一起使用
$grid-&gt;rowSelector()-&gt;check([2, 4])-&gt;disable([0, 2, 4]);</code></pre>
<p><strong>4.增加<code>KeyValue</code>表单自定义标题翻译功能</strong></p>
<pre><code class="language-php">$form-&gt;keyValue(...)-&gt;setKeyLabel('键名')-&gt;setValueLabel('键值');</code></pre>
<p><strong>5.增加<code>Grid::scrollbarX</code>显示表格横向滚动条方法</strong></p>
<p>显示表格横向滚动条,默认不显示</p>
<pre><code class="language-php">// 启用
$grid-&gt;scrollbarX();
// 禁用
$grid-&gt;scrollbarX(false);</code></pre>
<p><strong>6.增加<code>admin:update</code>命令</strong>
从当前版本开始,升级后可以直接运行 <code>admin:update</code>,相当于运行</p>
<pre><code>php artisan admin:publish --assets --migrations --lang --force
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.表单显示编辑数据时兼容驼峰风格的关联关系名称</strong></p>
<p>在旧版本中,如果需要编辑模型关联关系字段,且模型的关联关系名称为驼峰风格时,需要把名称更改为下划线风格才能正常显示,这对开发者非常不友好。从当前版本开始,可以直接使用驼峰风格的关联关系名称,不需要做任何特殊处理</p>
<pre><code class="language-php">return Form::make(User::with(['myProfile']), function (Form $form) {
// 直接使用驼峰风格命名,不需做其他处理
$form-&gt;text('myProfile.full_name');
...
});</code></pre>
<p><strong>2.调整工具表单数据设置逻辑,可在<code>form</code>方法中获取<code>default</code>方法数据</strong></p>
<pre><code class="language-php">use Dcat\Admin\Widgets\Form;
class Setting extends Form
{
public function form()
{
// 获取 default 方法设置的数据
$id = $this-&gt;data()-&gt;id;
$name = $this-&gt;data()-&gt;name;
$this-&gt;text('name');
...
}
public function default()
{
return [
'id' =&gt; 1,
'name' =&gt; 'abc',
...
];
}
}</code></pre>
<p><strong>3.<code>hasMany</code>以及<code>array</code>表单支持整体使用<code>rules</code>验证规则校验</strong></p>
<pre><code class="language-php">$form-&gt;hasMany(...)-&gt;rules('size:2');</code></pre>
<p><strong>4.调整<code>selectTable</code>默认占位符为<code>选择 ...</code></strong></p>
<p><strong>5.优化表单row布局间距</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/issues/1092">#1092</a></p>
<h3>BUG</h3>
<ol>
<li>修复 <code>ModelTree</code> 删除节点时无法删除间隔一个层级以上的子节点问题</li>
<li>修复导出功能在部分环境可能会出现异常问题</li>
<li>修复表单联动(<code>load</code>)加载后初始值丢失的问题 <a href="https://github.com/jqhph/dcat-admin/pull/1103">@xqbumu</a></li>
<li>修复文件上传失败后显示提示信息异常问题</li>
<li>修复数据详情<code>Show</code>实例化函数如果传递模型,主键赋值错误的问题 <a href="https://github.com/jqhph/dcat-admin/pull/1112">@jisuye</a></li>
<li>修复表格<code>setConstraints</code>方法对快速编辑无效问题 <a href="https://github.com/jqhph/dcat-admin/issues/1119">#1119</a></li>
<li>修复在<code>iframe</code>页面中预览图片功能异常问题</li>
<li>修复<code>hasMany</code>以及<code>array</code>表单下删除使用<code>required</code>验证规则的字段后导致无法提交表单问题</li>
<li>修复表格<code>dialogTree</code>当顶级ID为字符串<code>0</code>时加载异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/1122">#1122</a></li>
</ol>
<h2>v2.0.20-beta</h2>
<p>发布时间 2021/3/8</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.20-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.<code>selectTable</code>表单表格刷新时保留前页的数据状态</strong></p>
<p><code>selectTable</code>表单表格刷新或翻页后会保留前页选中或取消的数据状态</p>
<p><strong>2.<code>selectTable</code>表单设置显示字段名称功能优化</strong></p>
<p>在旧版本中,如果想要设置<code>selectTable</code>表单选中的字段或显示的字段,需要在<code>Renderable</code>对象中设置,非常的麻烦和不便,从当前版本开始,开发者可以直接通过下面的方法设置选中的字段或显示的字段</p>
<pre><code class="language-php">$form-&gt;selectTabole('user_id')
-&gt;from(UserTable::make())
-&gt;pluck('full_name', 'id'); // 第一个参数为显示的字段,第二个参数为选中后将保存到表单的字段
// 也可以直接使用下面的方法
$form-&gt;selectTabole('user_id')
-&gt;from(UserTable::make())
-&gt;model(UserModel::class, 'id', 'full_name');</code></pre>
<p><strong>3.<code>selectTable</code>、<code>multipleSelectTable</code>、<code>radio</code>、<code>checkbox</code>表单增加<code>load</code>方法</strong></p>
<p>从当前版本开始,<code>selectTable</code>、<code>multipleSelectTable</code>、<code>radio</code>、<code>checkbox</code>也可以使用<code>load</code>方法联动<code>select</code>和<code>multipleSelect</code>表单</p>
<pre><code class="language-php">$form-&gt;radio('type')-&gt;options([...])-&gt;load('category', 'categories/options');
$form-&gt;select('categories');</code></pre>
<p>接口<code>categories/options</code>返回格式如下</p>
<pre><code class="language-json">[
{
&quot;id&quot;: 9,
&quot;text&quot;: &quot;xxx&quot;
},
{
&quot;id&quot;: 21,
&quot;text&quot;: &quot;xxx&quot;
},
...
]</code></pre>
<p><strong>4.增加菜单水平布局自动适应页面以及菜单高度变化功能</strong></p>
<p>启用菜单水平布局功能后,当页面高度或菜单高度发生变动时,页面会自适应、自行调整内容间距</p>
<hr />
<p><strong>5.增加表格<code>Grid::dropColumn()</code>方法用于删除设置的列</strong></p>
<pre><code class="language-php">$nameColumn = $grid-&gt;column('name');
// 删除名称为 `name` 的列
$grid-&gt;dropColumn('name');
// 等同于
$grid-&gt;dropColumn($nameColumn);</code></pre>
<p><strong>6.增加<code>admin_javascript</code>函数</strong></p>
<p>此函数可用于往<code>php</code>的配置<code>array</code>中添加<code>JS</code>代码,用法如下</p>
<pre><code class="language-php">$form-&gt;text('number')-&gt;inputmask([
'oncomplete' =&gt; admin_javascript('function () {
// 这里是js代码
alert('inputmask complete');
}'),
]);</code></pre>
<p><strong>6.<code>Form</code>表单底部可默认勾选<code>查看</code>、<code>继续编辑</code>、<code>继续创建</code>等选项功能</strong></p>
<p>用法如下 <a href="https://github.com/jqhph/dcat-admin/pull/1073">#1073</a></p>
<pre><code class="language-php">$form-&gt;footer(function (Footer $footer) {
// 设置`查看`默认选中
$footer-&gt;defaultViewChecked();
// 设置`继续编辑`默认选中
$footer-&gt;defaultEditingChecked();
// 设置`继续创建`默认选中
$footer-&gt;defaultCreatingChecked();
});
// 设置`查看`默认选中
$form-&gt;defaultViewChecked();
// 设置`继续编辑`默认选中
$form-&gt;defaultEditingChecked();
// 设置`继续创建`默认选中
$form-&gt;defaultCreatingChecked();</code></pre>
<h3>BUG</h3>
<ol>
<li>修复表格使用关联关系字段排序时必须先<code>with</code>问题</li>
<li>修复同个页面无法同时渲染多个异步组件问题</li>
<li>修复树形表格下删除子节点数据后跳转异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/1071">#1071</a></li>
<li>修复表格导出字段中存在空数组时导出异常问题</li>
<li>修复表单多图上传使用<code>sortable</code>功能进行排序会导致页面的图片元素消失不见问题</li>
<li>修复表单字段<code>disable</code>方法设置<code>false</code>无效问题</li>
<li>修复<code>multipleSelect</code>表单使用<code>load</code>联动加载时无法把所有选中选项传入接口问题 <a href="https://github.com/jqhph/dcat-admin/issues/1076">#1076</a></li>
<li>修复表格规格选择器存在多个0开头选项时选中功能异常问题</li>
</ol>
<h2>v2.0.19-beta</h2>
<p>发布时间 2021/2/21</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.19-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复非超管角色下请求 <code>内置api</code> 时提示 <code>无权访问</code> 问题</li>
<li>修复在弹窗中使用时间范围表单报错问题</li>
</ol>
<h2>v2.0.18-beta</h2>
<p>发布时间 2021/2/20</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.18-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.增加菜单顶部横向布局 (Horizontal)</strong></p>
<p>设置配置参数 <code>admin.layout.horizontal_menu</code> 的值为 <code>true</code> 开启此功能,效果如下</p>
<p><img src="https://cdn.learnku.com/uploads/images/202102/20/38389/SpmXMujJ3D.png!large" alt="" /></p>
<p><strong>2.权限中间件以及跳过登陆判断时可以填写路由别名并且无需增加前缀</strong></p>
<p>配置文件以及权限设置路由别名时无需填写路由前缀</p>
<pre><code class="language-php"> 'permission' =&gt; [
...
// 跳过权限判断
'except' =&gt; [
// 可以直接填写路由别名,并且无需写路由前缀
'custom.users',
],
],</code></pre>
<p><strong>3.数据表格行数据增加 <code>_index</code> 字段用于保存行序号</strong></p>
<p>数据表格行数据增加 <code>_index</code> 字段用于保存行序号,从 <code>0</code> 开始,用法如下</p>
<pre><code class="language-php">// 在 display 回调中使用
$grid-&gt;column('序号')-&gt;display(function () {
return $this-&gt;_index + 1;
});
// 在行操作 action 中使用
$grid-&gt;actions(function ($actions) {
$index = $this-&gt;_index;
...
});</code></pre>
<p><strong>4.重命名 markdown 组件静态资源别名,避免与自定义 blade 标签产生冲突</strong></p>
<p><strong>5.增加配置参数 <code>admin.menu.default_icon</code> 用于设置默认菜单图标</strong></p>
<p><code>admin.menu.default_icon</code> 用于设置菜单默认图标,默认值为 <code>feather icon-circle</code></p>
<p><strong>6.增加新的区块位置 <code>NAVBAR_BEFORE</code> 以及 <code>NAVBAR_AFTER</code></strong></p>
<pre><code class="language-php">use Dcat\Admin\Admin;
// 往顶部导航栏前输出内容
admin_inject_section(Admin::SECTION['NAVBAR_BEFORE'], view('...'));
// 往顶部导航栏后输出内容
admin_inject_section(Admin::SECTION['NAVBAR_AFTER'], view('...'));</code></pre>
<p><strong>6.优化表格字段选择器代码</strong></p>
<h3>BUG修复</h3>
<ol>
<li>修复扩展管理页面<code>new</code>标签显示异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/1044">#1044</a></li>
<li>修复文件上传成功后直接删除报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/1058">#1058</a></li>
<li>修复 <code>Form::number</code> 表单在使用 <code>min</code> 和 <code>max</code> 方法后输入值异常问题</li>
</ol>
<h2>v2.0.17-beta</h2>
<p>发布时间 2021/2/5</p>
<p>升级方法,逐步执行以下命令,并清除浏览器缓存</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.17-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.优化表格排序功能</strong></p>
<p>支持<code>orderBy</code>直接使用关联关系表字段进行排序,注意这里仅支持<code>一对一</code>以及<code>一对多</code>关联关系</p>
<pre><code class="language-php">$grid-&gt;model()-&gt;orderBy('profile.age');</code></pre>
<p><strong>2.增加模型树以及树形表格自定义<code>parent_id</code>值功能</strong></p>
<p>模型树以及树形表格可以在<code>model</code>中自定义<code>parent_id</code>值,默认值为<code>0</code></p>
<pre><code class="language-php">class Category extends Model
{
use ModelTree;
// 设置默认 parent_id 为 A
protected $defaultParentId = 'A';
}</code></pre>
<p><strong>3.数据详情 <code>file</code> 支持展示多文件</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/985">#985</a></p>
<pre><code class="language-php">$show-&gt;field('...')-&gt;files();</code></pre>
<p>效果</p>
<p><img src="https://cdn.learnku.com/uploads/images/202102/02/38389/B0a2qZEBUL.png!large" alt="" /></p>
<p><strong>4.<code>Form::input</code>支持数组批量设置</strong></p>
<pre><code class="language-php">$form-&gt;submitted(function ($form) {
$form-&gt;input(['k1' =&gt; 'v1', 'k2' =&gt; 'v2' ...]);
});</code></pre>
<p><strong>5.扩展管理支持<code>logo</code>以及<code>别名展示</code></strong></p>
<p>详细用法参考文档 <a href="extension-dev.md#logo">扩展</a></p>
<p><strong>6.增加admin_route方法根据别名获取URL</strong></p>
<p><code>app/Admin/routes.php</code>路由注册如下</p>
<pre><code class="language-php">Route::group([
'prefix' =&gt; config('admin.route.prefix'),
'namespace' =&gt; config('admin.route.namespace'),
'middleware' =&gt; config('admin.route.middleware'),
], function (Router $router) {
// 设置别名
$router-&gt;resource('users', 'UserController', [
'names' =&gt; ['index' =&gt; 'my-users'],
]);
});</code></pre>
<p>根据别名获取URL</p>
<pre><code class="language-php">// 获取url
$url = admin_route('my-users');
// 判断路由
$isUsers = request()-&gt;routeIs(admin_route_name('users'));</code></pre>
<p><strong>8.JsonResponse::location 允许不传参</strong></p>
<p>如果不传参会在<code>1</code>秒之后自动刷新当前页面</p>
<pre><code class="language-php">return Admin::json()-&gt;success('操作成功')-&gt;location();</code></pre>
<p><strong>9.页面布局Layout\Column支持等宽布局</strong></p>
<p>当列宽度设置为<code>0</code>时会使用等宽布局 <a href="https://github.com/jqhph/dcat-admin/pull/1018">#1018</a></p>
<pre><code class="language-php">use Dcat\Admin\Layout\Row;
use Dcat\Admin\Layout\Content;
return Content::make()
-&gt;body(function (Row $row) {
$row-&gt;column(0, view('...'));
});</code></pre>
<p><strong>10.页面布局Layout\Row支持no-gutters属性</strong></p>
<p><code>.row</code>上带有<code>margin-left: -15px;margin-right: -15px;</code>属性,你可以在<code>.row</code>上上定义<code>.no-gutters</code>属性,从而消除这个属性,使页面不会额外宽出<code>30px</code>,即<code>&lt;div class=&quot;row no-gutters&quot;...</code></p>
<pre><code class="language-php">$content-&gt;row(function (Row $row) {
// 启用 no-gutters
$row-&gt;noGutters();
$row-&gt;column(9, function (Column $column) {
$column-&gt;row($this-&gt;card(['col-md-12', 20], '#4DB6AC'));
$column-&gt;row(function (Row $row) {
// 启用 no-gutters
$row-&gt;noGutters();
$row-&gt;column(4, $this-&gt;card(['col-md-4', 30], '#80CBC4'));
$row-&gt;column(4, $this-&gt;card(['col-md-4', 30], '#4DB6AC'));
$row-&gt;column(4, function (Column $column) {
$column-&gt;row(function (Row $row) {
// 启用 no-gutters
$row-&gt;noGutters();
$row-&gt;column(6, $this-&gt;card(['col-md-6', 30], '#26A69A'));
$row-&gt;column(6, $this-&gt;card(['col-md-6', 30], '#26A69A'));
});
});
});
});
});</code></pre>
<p>效果如下</p>
<p><img src="https://cdn.learnku.com/uploads/images/202102/05/38389/4YlO8aOPCW.jpg!large" alt="" /></p>
<p><strong>11.表格删除数据后保留URL的get参数</strong></p>
<p>在之前的版本中,删除数据后会丢失<code>URL</code>的<code>get</code>参数,导致跳转回表格第一页,这个版本对这个功能进行了优化,删除后依然会保留<code>URL</code>的<code>get</code>参数 <a href="https://github.com/jqhph/dcat-admin/issues/961">#961</a></p>
<p><strong>12.重构文件上传前端代码</strong></p>
<p>此功能为技术性优化,这个版本对文件上传前端代码进行了重构、拆分代码,使其更易阅读和维护</p>
<h3>BUG修复</h3>
<ol>
<li>修复<code>MultipleSelect</code>表单样式异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/967">#967</a></li>
<li>修复加载<code>markdown</code>组件后使用<code>select2</code>表单异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/990">#990</a></li>
<li>修复文件上传在<code>Linux</code>服务器下保存繁体中文文件名丢失问题 <a href="https://github.com/jqhph/dcat-admin/issues/993">#993</a></li>
<li>修复 <code>Widgets\Dropdown::click</code> 无法显示默认选项问题</li>
<li>修复<code>form</code>表单中的<code>number</code>组件文本内容为空时点击加减按钮出现<code>NaN</code>问题 <a href="https://github.com/jqhph/dcat-admin/issues/995">#995</a></li>
<li>修复图片预览失败提示无法使用翻译文件问题</li>
<li>修复一对一关联关系<code>Range</code>表单使用验证规则判断异常问题</li>
<li>修复多应用情况下路由别名冲突的问题</li>
</ol>
<h2>v2.0.16-beta</h2>
<p>发布时间 2021/1/11</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.16-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>破坏性变动</h3>
<p><strong>1.表单字段的 <code>disableHorizontal</code> 调整为 <code>horizontal</code> </strong></p>
<p>更改表单字段布局方式为<code>horizontal</code>,此功能默认启用,用法如下</p>
<pre><code class="language-php">// 禁用 horizontal 布局
$form-&gt;text('...')-&gt;horizontal(false);</code></pre>
<h3>功能改进</h3>
<p><strong>1.增强表格字段排序(sortable)功能</strong></p>
<p>使表格字段支持关联关系表字段以及<code>json</code>字段的排序</p>
<p>> 注意,关联关系仅支持<code>hasOne</code>以及<code>belongsTo</code>两种类型的字段排序,并且不支持多层级嵌套!</p>
<pre><code class="language-php">// 关联关系表字段排序
$grid-&gt;column('profile.age')-&gt;sortable();
// 指定需要排序的字段名称
$grid-&gt;column('my_age')-&gt;sortable('profile.age');
// json字段排序
$grid-&gt;column('options.price')-&gt;sortable('options-&gt;price');
// 关联关系表的 json 字段排序
$grid-&gt;column('profile.options.price')-&gt;sortable('profile.options-&gt;price');</code></pre>
<p>支持<code>MySql</code>的<code>order by cast(`{field}` as {type})</code>用法</p>
<pre><code class="language-php">$grid-&gt;column('profile.age')-&gt;sortable(null, 'SIGNED');
$grid-&gt;column('profile.options.price')-&gt;sortable('profile.options-&gt;price', 'SIGNED');</code></pre>
<p><strong>2.增加 admin_exist 函数,用于代替 exit</strong></p>
<p><code>admin_exist</code> 用于中断程序执行,并响应数据到浏览器进行显示,用于代替 <code>exit</code> 和 <code>die</code>,下面简单介绍下用法</p>
<p>用法1,返回 <code>Content</code> 布局对象,此用法可用于返回错误信息显示到前端</p>
<pre><code class="language-php">use Dcat\Admin\Widgets\Alert;
use Dcat\Admin\Layout\Content;
// 中断程序,并显示自定义页面到前端
admin_exit(
Content::make()
-&gt;title('标题')
-&gt;description('描述')
-&gt;body('页面内容1')
-&gt;body(Alert::make('服务器出错了~', 'Error')-&gt;danger())
);</code></pre>
<p>效果如下</p>
<p><img src="https://cdn.learnku.com/uploads/images/202101/11/38389/FLg6C7kwRq.png!large" alt="" /></p>
<p>用法2,返回 <code>json</code> 格式数据,此用法经常用于表单提交数据的<code>api</code>请求拦截,或<code>Action</code>的<code>api</code>请求拦截</p>
<pre><code class="language-php">use Dcat\Admin\Admin;
admin_exit(
Admin::json()
-&gt;success('成功了')
-&gt;refresh()
-&gt;data([
...
])
);
// 当然也可以直接响应数组
admin_exit([
...
]);</code></pre>
<p>用法3,直接相应<code>Response</code>对象或字符串</p>
<pre><code class="language-php">admin_exit('Hello world');
admin_exit(response('Hello world', 500));</code></pre>
<p><strong>3.增加 Show\Field::bool() 和 Show\Field::bold() 方法</strong></p>
<p>字段值为真显示 <code>✓</code>, 否则显示 <code>✗</code> <a href="https://github.com/jqhph/dcat-admin/pull/940">#940</a></p>
<pre><code class="language-php">$show-&gt;field('...')-&gt;bool();</code></pre>
<p>字段值加粗显示</p>
<pre><code class="language-php">$show-&gt;field('...')-&gt;bold();
// 指定颜色
$show-&gt;field('...')-&gt;bold(admin_color()-&gt;primary());</code></pre>
<p><strong>4.增加 Form\Footer::view() 方法</strong></p>
<p>通过 <code>Form\Footer::view()</code> 方法可以自定义数据表单的底部视图 <a href="https://github.com/jqhph/dcat-admin/pull/957">#957</a></p>
<pre><code class="language-php">$form-&gt;footer(function ($footer) {
$footer-&gt;view('...', [...]);
});</code></pre>
<p><strong>5.增加表单默认显示指定 Tab 功能</strong></p>
<pre><code class="language-php">// 默认显示标题为 标题2 的 Tab
$form-&gt;getTab()-&gt;active('标题2');
// 也可以指定偏移量
$form-&gt;getTab()-&gt;activeByIndex(1);
$form-&gt;tab('标题1', function ($form) {
...
});
$form-&gt;tab('标题2', function ($form) {
...
});</code></pre>
<p><strong>6.增加表单 Form\Row::horizontal() 方法</strong></p>
<p>设置布局为 <code>horizontal</code></p>
<pre><code class="language-php">$form-&gt;row(function (Form\Row $form) {
$form-&gt;horizontal();
...
});</code></pre>
<p><strong>7.表格 Modal 增加自定义图标功能</strong></p>
<pre><code class="language-php">$grid-&gt;column('...')-&gt;modal(function ($modal) {
// 自定义图标
$modal-&gt;icon('feather icon-x');
return ...;
});</code></pre>
<p><strong>8.增加路由域名限制配置</strong></p>
<p>通过配置参数<code>admin.route.domain</code>可以限制路由的域名, 打开配置文件 <code>config/admin.php</code></p>
<pre><code class="language-php"> 'route' =&gt; [
'domain' =&gt; env('ADMIN_ROUTE_DOMAIN'),
'prefix' =&gt; env('ADMIN_ROUTE_PREFIX', 'admin'),
'namespace' =&gt; 'App\\Admin\\Controllers',
'middleware' =&gt; ['web', 'admin'],
],</code></pre>
<p><strong>9.增加 admin.session 中间件的启用或禁用配置</strong></p>
<p>从<code>2.0</code>的版本之后 <code>admin.session</code> 中间件不再默认启用,如果您的应用同时有前台和后台,则需要开启 <code>admin.session</code> 中间件,否则会造成前后台 <code>session</code> 冲突问题。</p>
<p>把配置参数 <code>admin.route.enable_session_middleware</code> 的值设置为 <code>true</code> 即可开启</p>
<pre><code class="language-php"> 'route' =&gt; [
'domain' =&gt; env('ADMIN_ROUTE_DOMAIN'),
'prefix' =&gt; env('ADMIN_ROUTE_PREFIX', 'admin'),
'namespace' =&gt; 'App\\Admin\\Controllers',
'middleware' =&gt; ['web', 'admin'],
// 开启 admin.session 中间件
'enable_session_middleware' =&gt; true,
],</code></pre>
<h3>BUG修复</h3>
<ol>
<li>修复数据表格<code>Grid::header</code>以及<code>Grid::footer</code>回调的第一个参数中<code>Model</code>被转化为<code>array</code>格式问题</li>
<li>修复切换主题时文件上传按钮颜色无法跟着改变问题 <a href="https://github.com/jqhph/dcat-admin/issues/938">#938</a></li>
<li>修复 <code>Widgets\Table</code> 构造方法第三个参数设置无效问题</li>
<li>修复 <code>app/Admin/bootstrap.php</code> 中使用 <code>config(['admin.layout.color' =&gt; '...'])</code> 覆盖主题色可能无效问题</li>
<li>修复数据表格过滤器重置关联关系表单字段无效问题 <a href="https://github.com/jqhph/dcat-admin/issues/949">#949</a></li>
<li>修复表格过滤器 <code>group</code> 功能显示异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/929">#929</a></li>
<li>修复当页面存在多个 <code>selectTable</code> 表单时所有弹窗都只显示第一个设置的 <code>title</code> 问题 <a href="https://github.com/jqhph/dcat-admin/issues/926">#926</a></li>
</ol>
<h2>v2.0.15-beta</h2>
<p>发布时间 2021/1/3</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.15-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.升级select2到v4.1.x-beta版本</strong></p>
<p><code>select</code>组件升级至<code>v4.1.x-beta</code>,使<code>tags</code>表单体验更好,并支持了多国语言翻译。</p>
<p><strong>2.Widgets/Modal增加弹窗垂直居中以及可滚动功能</strong></p>
<p>用法如下 <a href="https://github.com/jqhph/dcat-admin/pull/901">#901</a></p>
<pre><code class="language-php">$modal = Modal::make()
-&gt;xl()
-&gt;centered() // 设置弹窗垂直居中
-&gt;scrollable() // 设置弹窗内容可滚动
-&gt;title(...)
-&gt;body(...);</code></pre>
<p><strong>3.<code>Admin::requiredAssets</code>支持传递动态参数</strong></p>
<pre><code class="language-php">use Dcat\Admin\Admin;
// 注册前端组件别名
// {lang} 为动态参数
Admin::asset()-&gt;alias('@test', [
'js' =&gt; ['/vendor/test/js/{lang}.min.js'],
]);
// {lang} 会被替换为 zh_CN
Admin::requireAssets('@test', ['lang' =&gt; 'zh_CN']);
// 也可以这样使用
Admin::requireAssets('@test?lang=zh_CN');</code></pre>
<h3>Bug修复</h3>
<ol>
<li>修复表单<code>block</code>布局无法保存数据问题 <a href="https://github.com/jqhph/dcat-admin/issues/883">#883</a></li>
<li>修复<code>hasMany</code>表单下使用<code>currency</code>失效问题 <a href="https://github.com/jqhph/dcat-admin/issues/886">#886</a></li>
<li>修复数据表单保存后自动跳转到详情页问题 <a href="https://github.com/jqhph/dcat-admin/issues/893">#893</a></li>
<li>修复<code>editor</code>表单无法清空数据问题 <a href="https://github.com/jqhph/dcat-admin/issues/895">#895</a></li>
<li>修复<code>hasMany</code>表单下使用<code>tags</code>的<code>required</code>验证异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/905">#905</a></li>
<li>修复多文件上传表单删除单个文件时会导致全部文件被清空问题 <a href="https://github.com/jqhph/dcat-admin/issues/914">#914</a></li>
<li>修复表格字段无法使用模型访问器问题</li>
</ol>
<h2>v2.0.13-beta</h2>
<p>发布时间 2020/12/23</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.13-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h2>v2.0.14-beta</h2>
<p>发布时间 2020/12/24</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.14-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.优化文件上传失败错误信息提示</strong></p>
<p>在旧版本中,文件上传失败的错误提示信息不太明确,导致难以定义错误原因,所以在这个版本中对错误提示进行了优化,一旦文件上传失败会显示具体原因。</p>
<h3>Bug修复</h3>
<ol>
<li>修复表格字段与模型<code>casts</code>属性产生冲突,以及<code>display</code>闭包中使用字符串拼接显示异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/876">#876</a></li>
<li>修复表单动态显示功能无法使用问题 <a href="https://github.com/jqhph/dcat-admin/issues/879">#879</a></li>
<li>修复表单使用<code>Block</code>布局时无法显示编辑数据问题 <a href="https://github.com/jqhph/dcat-admin/issues/877">#877</a></li>
</ol>
<h2>v2.0.13-beta</h2>
<p>发布时间 2020/12/23</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.13-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>Bug修复</h3>
<ol>
<li>修复表格展示关联关系字段当关联数据不存在时有可能报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/867">#867</a></li>
<li>修复当表格使用数据仓库返回数组或非模型<code>collection</code>时<code>display</code>方法无效问题 <a href="https://github.com/jqhph/dcat-admin/issues/869">#869</a></li>
</ol>
<h2>v2.0.12-beta</h2>
<p>发布时间 2020/12/22</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.12-beta&quot;
php artisan admin:publish --assets --migrations --force
php artisan migrate</code></pre>
<h3>破坏性变动</h3>
<p><strong>1.图片/文件上传表单<code>removable</code>重命名为<code>removable</code></strong></p>
<pre><code class="language-php">$form-&gt;file('...')-&gt;removable();</code></pre>
<h3>功能改进</h3>
<p><strong>1.支持PHP8.0</strong></p>
<p><strong>2.图片/文件上传表单支持监听WebUploader事件</strong></p>
<p>通过 <code>on</code> 方法可以监听 <a href="http://fex.baidu.com/webuploader/doc/index.html#WebUploader_Uploader_events">WebUploader文件上传相关事件</a></p>
<pre><code class="language-php">$form-&gt;file('...')
-&gt;on('startUpload', &lt;&lt;&lt;JS
function () {
console.log('文件开始上传...', this);
// 上传文件前附加自定义参数到文件上传接口
this.uploader.options.formData['custom_field'] = '...';
}
JS
)
-&gt;on('uploadFinished', &lt;&lt;&lt;JS
function () {
console.log('文件上传完毕');
}
JS
);
// </code></pre>
<p><strong>3.监听文件上传成功或文件被删除时产生的变动</strong></p>
<p>通过以下方法可以监听文件<strong>上传成功</strong>或文件<strong>被删除</strong>时产生的变动</p>
<pre><code class="language-php">$file = $form-&gt;file('...');
Admin::script(
&lt;&lt;&lt;JS
$('{$file-&gt;getElementClassSelector()} .file-input').on('change', function () {
console.log('文件发生变动', this.value);
});
JS
);</code></pre>
<p><strong>4.允许在uploading事件中拦截并响应错误信息</strong></p>
<p>从这个版本开始支持在表单的 <code>uploading</code> 事件中拦截文件上传并支持响应错误信息到前端</p>
<pre><code class="language-php">$form-&gt;uploading(function (Form $form) {
return $form-&gt;response()-&gt;error('文件上传失败,请重试!');
});</code></pre>
<p><strong>5.监听selectTable选中值变动</strong></p>
<pre><code class="language-php">$selectTable = $form-&gt;selectTable('...')-&gt;from(...);
Admin::script(
&lt;&lt;&lt;JS
$('{$selectTable-&gt;getElementClassSelector()} input[type=&quot;hidden&quot;]').on('change', function () {
console.log('选中值发生变化', this.value);
});
JS
);</code></pre>
<p><strong>6.调整树状表格无数据返回,取消返回404状态码</strong></p>
<p><strong>7.调整表格displayer类的row属性值类型为model</strong></p>
<p><strong>8.暗黑模式细节优化</strong></p>
<pre><code class="language-php">$grid-&gt;column(...)-&gt;modal(function () {
// $this 指向 model 对象
dd($this);
});
$grid-&gt;actions(function () {
// $this 指向 model 对象
dd($this);
});</code></pre>
<p><strong>9.优化卡片中图表显示溢出的问题</strong></p>
<p><a href="https://github.com/jqhph/dcat-admin/pull/822">#822</a></p>
<p><strong>10.widget组件增加when方法</strong></p>
<pre><code class="language-php">$modal = Dcat\Admin\Widgets\Modal::make()
-&gt;when($condition, function ($modal) {
// 当 $condition 的值为 真 时,会执行闭包里面的逻辑
$modal-&gt;xl();
})
-&gt;body(...)
-&gt;render();</code></pre>
<h3>Bug修复</h3>
<ol>
<li>修复 <code>Grid\Filter::group</code> 无法保持选择状态问题 <a href="https://github.com/jqhph/dcat-admin/pull/793">#739</a></li>
<li>修复 <code>Form::hasMany</code> 表单条目删除后仍然验证 <code>required</code> 问题 <a href="https://github.com/jqhph/dcat-admin/pull/795">#795</a></li>
<li>修复 地图 表单无法使用问题</li>
<li>修复当生成 <code>composer</code> 类映射文件且类文件被删除的情况下使用 <code>guessClassFileName</code> 会报错问题</li>
<li>修复数据导出使用 <code>Fetched</code> 事件报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/815">#815</a></li>
<li>修复设置 <code>Grid name</code> 之后无法重置 <code>filter</code> 问题</li>
<li>修复 <code>select2</code> 无法自动使用中文语言包问题 <a href="https://github.com/jqhph/dcat-admin/issues/839">#839</a></li>
<li>修复表单勾选 <code>继续创建</code> 以及 <code>继续编辑</code> 跳转路由错误问题 <a href="https://github.com/jqhph/dcat-admin/issues/814">#814</a></li>
<li>修复一对一关联关系 <code>range</code> 表单设置 <code>rules</code> 无效问题</li>
<li>修复当启用 <code>fixColumns</code> 时,时间筛选下拉会被遮挡问题 <a href="https://github.com/jqhph/dcat-admin/issues/833">#833</a></li>
<li>修复菜单使用<code>fa</code>图标无法自动对齐问题 <a href="https://github.com/jqhph/dcat-admin/pull/758">#758</a></li>
<li>修复表单 <code>row</code> 布局下使用 <code>hasMany</code> 提交报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/801">#801</a></li>
<li>修复表单 <code>hasMany</code> 无法使用 <code>select</code> 联动问题 <a href="https://github.com/jqhph/dcat-admin/issues/769">#769</a></li>
</ol>
<h2>v2.0.11-beta</h2>
<p>发布时间 2020/12/06</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.11-beta&quot;
php artisan admin:publish --assets --force
php artisan admin:publish --migrations --force # 表结构有变动
php artisan migrate</code></pre>
<h3>Bug修复</h3>
<ol>
<li>修复使用 <code>pjax</code> 重复刷新页面可能导致 <code>Dcat.init</code> 监听失效问题</li>
<li>修复 <code>admin:export-seed --users</code> 会生成多余代码问题</li>
<li>修复表单编辑页面保存后跳转异常问题</li>
<li>修复表单页面选择继续编辑会导致 <code>hasMany</code> 重复添加数据问题</li>
<li>修复 <code>select</code> 表单联动后原 <code>select2 config</code> 丢失问题 <a href="https://github.com/jqhph/dcat-admin/issues/779">#779</a></li>
<li>修复 <code>map</code> 表单加载异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/764">#764</a></li>
<li>修复批量删除功能删除数据后无法自动刷新页面问题</li>
<li>修复 <code>hasMany</code> 表单编辑页面无法正常展示 <code>row</code> 以及 <code>column</code> 布局问题</li>
<li>修复 <code>Dcat.init</code> 监听会被异步弹窗解绑问题</li>
<li>修复表格工具栏下拉菜单会被固定列表格遮挡问题 <a href="https://github.com/jqhph/dcat-admin/issues/728">#728</a></li>
<li>修复禁用 <code>showColumnSelector</code> 时仍然会读取缓存内容问题</li>
</ol>
<h3>功能改进</h3>
<p><strong>1.Form::divider 增加 title 参数</strong></p>
<p>增加 <code>title</code> 参数用于在分割线中间显示标题功能,用法</p>
<pre><code class="language-php">$form-&gt;divider('标题');</code></pre>
<p><strong>2.Grid::footer以及Grid::header调整为支持多次回调</strong></p>
<pre><code class="language-php">$grid-&gt;header(...);
$grid-&gt;header(...);
$grid-&gt;header(...);</code></pre>
<p><strong>3.优化表格规格筛选器以及select表单样式</strong></p>
<h2>v2.0.10-beta</h2>
<p>发布时间 2020/11/29</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.10-beta&quot;
php artisan admin:publish --assets --force
php artisan admin:publish --migrations --force # 表结构有变动
php artisan migrate</code></pre>
<h3>功能改进</h3>
<p><strong>1.增加表单右上角提示窗展示字段验证错误信息</strong></p>
<p>此功能默认开启,可以通过<code>validationErrorToastr</code>方法禁用</p>
<pre><code class="language-php">$form-&gt;validationErrorToastr(false);</code></pre>
<p><strong>2.增加 Tree::maxDepth 方法用于限制模型树最大层级</strong></p>
<pre><code class="language-php">$tree-&gt;maxDepth(5);</code></pre>
<p><strong>3.优化导出功能,支持标题设置关联关系字段以及自动读取grid表格列的标题</strong></p>
<p>在当前版本中导出列默认与<code>column</code>列一致,不再需要手动设置导出的列名称以及翻译,并且支持关联关系字段</p>
<pre><code class="language-php">$grid-&gt;column('id');
$grid-&gt;column('name');
...
// 默认与上面的列相同
$grid-&gt;export();</code></pre>
<p><strong>4.工具表单增加resetButton与submitButton方法</strong></p>
<pre><code class="language-php">// 禁用重置和提交按钮
$form-&gt;resetButton(false);
$form-&gt;submitButton(false);</code></pre>
<p><strong>5.表单字段的<code>disable</code>以及<code>readOnly</code>方法增加参数控制是否启用</strong></p>
<pre><code class="language-php">// 传 false 则不启用
$form-&gt;text(...)-&gt;disable(false);</code></pre>
<p><strong>6.文件上传增加<code>withDeleteData</code>允许用户设置请求参数,并在上传接口以及删除接口中增加主键字段</strong></p>
<p>通过 <code>withDeleteData</code> 方法可以传递自定义参数到文件删除接口</p>
<pre><code class="language-php">$form-&gt;file(...)-&gt;withDeleteData(['key' =&gt; 'value]);</code></pre>
<p><strong>7.增加<code>embeds</code>表单禁止显示标题功能`</strong></p>
<p>第二个参数传 <code>false</code> 则不显示标题</p>
<pre><code class="language-php">$form-&gt;embeds('field', false, function ($form) {
...
});</code></pre>
<p><strong>8.重新编写部分单元测试用例,以支持2.x用法</strong></p>
<h3>Bug修复</h3>
<ol>
<li>修复管理员详情页无法选中已有权限问题 </li>
<li>修复 <code>admin:export-seed</code> 命令导出 <code>seeder</code> 类名异常问题</li>
<li>修复表单删除跳转异常问题</li>
<li>修复表单继续编辑跳转异常问题</li>
<li>修复父表与 <code>hasMany</code> 存在同样字段名称时无法保存父表字段问题</li>
<li>修复暗黑模式下选中子菜单样式异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/712">#712</a></li>
<li>修复表单 <code>block</code> 布局下表单动态显示功能无效问题 <a href="https://github.com/jqhph/dcat-admin/issues/723">#723</a></li>
<li>优化 <code>selectOptions</code> 层级结构显示,解决前缀呈现随层级深度指数增加问题 <a href="https://github.com/jqhph/dcat-admin/issues/618">#618</a></li>
<li>修复 <code>admin_view</code> 没有返回数据问题</li>
<li>修复 <code>select</code> 表单 <code>ajax</code> 以及 <code>load</code> 设置的链接不能带参数问题 <a href="https://github.com/jqhph/dcat-admin/issues/745">#745</a></li>
<li>修复表格行操作 <code>action</code> 的 <code>handle</code> 方法只能获取最后一行数据的 <code>id</code> 问题</li>
<li>修复 <code>list</code> 表单编辑页无法删除已有数据问题 <a href="https://github.com/jqhph/dcat-admin/issues/759">#759</a></li>
<li>修复 <code>embeds</code> 范围表单 <code>name</code> 属性错误问题</li>
</ol>
<h2>v2.0.9-beta</h2>
<p>发布时间 2020/11/18</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.9-beta&quot;
php artisan admin:publish --assets --force
php artisan admin:publish --migrations --force # 表结构有变动
php artisan migrate</code></pre>
<p><strong>Bug修复</strong></p>
<ol>
<li>修复表格<code>filter::select</code> 表单远程加载 <code>/load/ajax</code> 等功能失效问题</li>
<li>修复前端 <code>moment-timezone</code> 组件路径加载错误问题 <a href="https://github.com/jqhph/dcat-admin/issues/701">#701</a></li>
<li>修复 <code>Form::tree</code>无法保存数据导致的无法设置权限问题</li>
<li>修复当 <code>hasMany</code> 表单与父表有同样字段名称时填充值默认值异常问题</li>
<li>修复表单<code>tab</code>布局嵌套<code>row</code>布局时新增页面报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/648">#648</a></li>
<li>修复当表单存在 <code>range</code> 类型字段时提交后无法获取 <code>range</code> 下面所有表单值问题</li>
<li>修复 <code>Form::select</code> 使用表单联动功能时select2组件无效问题</li>
</ol>
<h2>v2.0.8-beta</h2>
<p>发布时间 2020/11/16</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.8-beta&quot;
php artisan admin:publish --assets --force
php artisan admin:publish --migrations --force # 表结构有变动
php artisan migrate</code></pre>
<p>本次版本作为<code>2.0.7-beta</code>的补充版本,主要修复以下几个问题</p>
<ol>
<li>修复管理员页面无法查看权限问题</li>
<li>修复表单block布局失效问题</li>
<li>修复文件上传表单渲初始化功能异常问题</li>
<li>修复部分表单字段不支持单个页面同时渲染多个的问题</li>
</ol>
<h2>v2.0.7-beta</h2>
<p>发布时间 2020/11/15</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.7-beta&quot;
php artisan admin:publish --assets --force
php artisan admin:publish --migrations --force # 表结构有变动
php artisan migrate</code></pre>
<p><strong>功能改进</strong></p>
<p>1.引入<a href="https://github.com/pie6k/jquery.initialize">jquery.initialize</a>组件,用于监听动态生成的页面元素并设置一个回调,下面来举一个简单的例子来演示用法:</p>
<p>在旧版本中,假如一个元素是<code>JS</code>动态生成的,如果我们需要对这个元素绑定一个点击事件的话,那么我们通常需要这么做</p>
<pre><code class="language-html">&lt;div class=&quot;selector&quot;&gt;test&lt;/div&gt;
&lt;script&gt;
Dcat.ready(function () {
// 需要先 off 再 on 否则页面刷新后会造成重复绑定问题
$(document).off('click', '.selector').on('click', '.selector', function () {
...
})
});
&lt;/script&gt;</code></pre>
<p>上面这种做法一来比较麻烦,需要先<code>off</code>再<code>on</code>;二来无法对动态生成的元素做一些特殊处理,例如你想在<code>.selector</code>生成后改变背景颜色,这个操作就没办法做到。</p>
<p>在这个版本中我们可以使用<code>Dcat.init</code>方法来监听元素动态生成,可以很方便的解决上面两个问题</p>
<pre><code class="language-html">&lt;div class=&quot;selector&quot;&gt;test&lt;/div&gt;
&lt;script&gt;
Dcat.ready(function () {
// $this 是当前元素的jquery dom对象
// id 是当前元素的id属性,如果当前元素没有id则会自动生成一个随机id
Dcat.init('.selector', function ($this, id) {
// 修改元素的背景色
$this.css({background: &quot;#fff&quot;});
// 这里不需要 off 再重新 on,因为这个匿名函数只会执行一次
$this.on('click', function () {
...
});
});
});
&lt;/script&gt;</code></pre>
<p>得益于这个<a href="https://github.com/pie6k/jquery.initialize">jquery.initialize</a>组件的引入,在当前这个版本中我们对表单组件的前端代码也进行了优化,使其更容易支持<code>HasMany</code>这种动态生成的表单类型,大大降低了代码的复杂性。</p>
<p>2.Form::hasMany以及Form::array表单支持column和row布局</p>
<p>如果字段比较多,可以用<code>column</code>和<code>row</code>布局以节省空间</p>
<pre><code class="language-php">$form-&gt;array('field', function (NestedForm $form) {
$form-&gt;column(6, function (NestedForm $form) {
$form-&gt;text('...');
...
});
$form-&gt;column(6, function (NestedForm $form) {
...
});
});</code></pre>
<p>3.配置过admin.auth.except参数的路由不需要验证权限 <a href="https://github.com/jqhph/dcat-admin/issues/673">#673</a></p>
<p>4.Form、Grid以及Show字段类增加when方法</p>
<p>用法示例,类似<code>Laravel QueryBuilder</code>的<code>when</code>方法</p>
<p>在表格中</p>
<pre><code class="language-php">// 当第一个参数的值为 真 时才会执行闭包的代码
$grid-&gt;column('title')-&gt;when(true, function (Grid\Column $column, $value) {
$column-&gt;label();
});</code></pre>
<p>表单</p>
<pre><code class="language-php">// 当第一个参数的值为 真 时才会执行闭包的代码
$form-&gt;text('email')-&gt;when(true, function (Form\Field\Text $text, $value) {
$text-&gt;type('email');
});</code></pre>
<p>5.管理员模型增加canSeeMenu方法控制是否可见菜单</p>
<pre><code class="language-php">&lt;?php
namespace App\Models;
use Dcat\Admin\Models\Administrator as Model;
class Administrator extends Model
{
/**
* 控制菜单是否可见,默认返回true
*
* @param array|\Illuminate\Database\Eloquent\Model $menu 菜单节点
* @return bool
*/
public function canSeeMenu($menu)
{
return true;
}
}</code></pre>
<p>6.增加 admin_script、admin_style、admin_js、admin_css以及admin_require_assets函数</p>
<pre><code class="language-php">// 相当于 Admin::script
admin_script('console.log(xxx)');
// 相当于 Admin::style
admin_style('.my-class {color: red}');
// 相当于 Admin::js()
admin_js(['@admin/xxx.js']);
// 相当于 Admin::css()
admin_css(['@admin/xxx.css']);
// 相当于 Admin::requireAssets()
admin_require_assets(['@select2']);</code></pre>
<p>7.简化动作(Action)的<code>JS</code>代码逻辑,去除记住<code>selector</code>功能</p>
<p><strong>BUG修复</strong></p>
<ol>
<li>修复表格 orderable 功能异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/674">#674</a></li>
<li>修复 JsonResponse methodIf 用法报错问题</li>
<li>修复表格、表单以及数据详情指定 <code>label</code> <a href="https://github.com/jqhph/dcat-admin/issues/684">#684</a></li>
<li>修复表格 <code>Grid::rows</code> 回调无法正常使用问题</li>
<li>修复widget添加<code>JS</code>代码异常导致部分类型的统计卡片异步加载功失效问题</li>
<li>修复表格行操作 getKey 方法异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/691">#691</a></li>
<li>修复当页面存在多个 select 表单时无法使用联动功能问题</li>
<li>修复表格删除数据后无法自动刷新页面问题</li>
</ol>
<h2>v2.0.6-beta</h2>
<p>发布时间 2020/11/7</p>
<p>升级方法,逐步执行以下命令</p>
<pre><code class="language-bash">composer remove dcat/laravel-admin
composer require dcat/laravel-admin:&quot;2.0.6-beta&quot;
php artisan admin:publish --assets --force
php artisan admin:publish --migrations --force # 表结构有变动
php artisan migrate</code></pre>
<p><strong>破坏性变动</strong></p>
<p>1.<code>Form::tags</code>表单默认保存为<code>array</code>类型</p>
<pre><code class="language-php">// 需要自己转换保存到数据库的格式
$form-&gt;tags('tag')-&gt;saveAsJson();</code></pre>
<p>2.默认禁用 session 中间件</p>
<p>3.<code>Form\Tree::disableFilterParents</code> 重命名为 <code>Form\Tree::exceptParentNode</code></p>
<pre><code class="language-php">$form-&gt;tree('cate')-&gt;exceptParentNode(false);</code></pre>
<p>4.文件上传表单部分方法名称调整</p>
<pre><code class="language-php">// 启用分块上传功能 disableChunked 更改为 chunked
$form-&gt;image('avatar')-&gt;chunked(true);
// 启用自动保存字段值功能 disableAutoSave 更改为 autoSave
$form-&gt;image('avatar')-&gt;autoSave(false);
// 启用删除文件功能 disableRemove 更改为 removable
$form-&gt;image('avatar')-&gt;removable(false);</code></pre>
<p><strong>功能改进</strong></p>
<p>1.代码生成器增加字段拖动排序功能,此方法由小伙伴<a href="https://github.com/codingyu">@codingyu</a>贡献</p>
<p>2.菜单表增加<code>show</code>和<code>extension</code>字段,<code>show</code>字段用于控制是否显示菜单;<code>extension</code>字段用于标记是否为扩展菜单</p>
<p>3.<code>Form::table</code>、<code>Form::array</code>、<code>Form::embeds</code>表单支持关联关系字段</p>
<pre><code class="language-php">$form-&gt;table('profile.options', function ($form) {
...
});</code></pre>
<p>4.增加 <code>Form::checkbox</code> 以及 <code>Form::radio</code> 表单选项竖排显示功能</p>
<pre><code class="language-php">$form-&gt;checkbox('xxx')-&gt;inline(false)-&gt;options([...]);</code></pre>
<p>5.配置文件跳过登录以及权限验证功能允许配置路由别名</p>
<pre><code class="language-php">'auth' =&gt; [
'except' =&gt; [
...
'user.login',
],
],</code></pre>
<p>6.<code>Form\Row</code> 增加 <code>getKey</code> 以及 <code>model</code> 方法</p>
<p>7.优化表格过滤器select表单选中效果,默认不选中</p>
<p>8.表单tab布局优化</p>
<p><strong>BUG修复</strong></p>
<ol>
<li>修复 <code>Form::checkbox</code> 选中/取消选中全部选项时动态显示表单功能无效问题</li>
<li>修复台湾繁体无法翻译默认菜单标题问题 </li>
<li>修复 <code>NestedForm</code> 中的 <code>number</code> 字段输入值为 0 时会被过滤问题 <a href="https://github.com/jqhph/dcat-admin/issues/634">#634</a></li>
<li>修复模型树<code>RowAction</code>异步处理接口时获取主键报错问题</li>
<li>修复表格过滤器无法重置关联表字段搜索值问题 <a href="https://github.com/jqhph/dcat-admin/issues/650">#650</a></li>
<li>修复表格过滤器multipleSelect表单异常问题</li>
</ol>
<h2>v2.0.5-beta</h2>
<p>发布时间 2020/10/29</p>
<p>BUG修复</p>
<ol>
<li>修复表格搜索多个关联表字段sql错误问题 <a href="https://gitee.com/jqhph/dcat-admin/issues/I232T7">I232T7</a></li>
<li>修复<code>Form::datetimeRange</code>表单无法选择日志问题</li>
<li>修复无法添加多个<code>Form::table</code>表单字段问题 <a href="https://github.com/jqhph/dcat-admin/issues/627">#627</a></li>
<li>修复表格过滤器 MultipleSelectTable 中报错问题</li>
<li>修复表格规格筛选器样式异常问题</li>
</ol>
<h2>v2.0.4-beta</h2>
<p>发布时间 2020/10/27</p>
<p>BUG修复</p>
<ol>
<li>修复 admin_javascript_json 函数会自动空滤数组空值问题</li>
<li>修复数据表单使用 tab 布局报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/620">#620</a></li>
<li>修复扩展本地安装生成临时目录权限异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/625">#625</a></li>
<li>修复表单使用 html 方法设置视图存在 script 标签时报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/624">#624</a></li>
<li>修复数据详情使用关联关系(一对多)显示报错问题 <a href="https://github.com/jqhph/dcat-admin/issues/623">#623</a></li>
<li>修复 dropdown 下拉菜单计算显示位置异常问题 <a href="https://gitee.com/jqhph/dcat-admin/issues/I22S2N">#I22S2N</a></li>
</ol>
<h2>v2.0.3-beta</h2>
<p>发布时间 2020/10/27</p>
<p>BUG修复</p>
<ol>
<li>修复表单行内编辑显示返回信息异常问题</li>
<li>修复<code>admin.auth.remember</code>设置无效问题 <a href="https://github.com/jqhph/dcat-admin/issues/613">#613</a></li>
<li>修复<code>editor</code>表单中文翻译异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/611">#611</a></li>
<li>修复<code>Filter::scope</code>选择筛选项不会过滤分页参数问题</li>
<li>修复表单事件拦截相关问题</li>
<li>修复树形表单使用异常问题 <a href="https://github.com/jqhph/dcat-admin/issues/619">#619</a></li>
</ol>
<p>功能改进</p>
<ol>
<li>增加跳过权限和登录验证的配置方式</li>
<li>扩展service provider增加middleware和路由排查注册功能</li>
<li>批量操作change事件监听优化</li>
<li>增加<code>RowSelector</code>健壮性, 以避免遇到<code>json</code>数组类型字段无法处理而报错 <a href="https://github.com/jqhph/dcat-admin/pull/609">#609</a></li>
</ol>
<h2>v2.0.2-beta</h2>
<p>发布时间 2020/10/21</p>
<p>BUG修复</p>
<ol>
<li>修复代码生成器生成控制器文件命名空间异常问题 #600 </li>
<li>修复配置文件logo路径错误问题</li>
<li>修复表格关联字段搜索无效问题</li>
<li>修复模型树行操作生成选择器重复问题</li>
<li>修复访问无权限页面报错问题</li>
<li>修复表格过滤器multipleSelect无法选中关联表字段值问题 #603 </li>
<li>修复表单tab布局无效问题 #605 </li>
</ol>
<p>功能改进</p>
<ol>
<li>Auth\Permission移至Http目录</li>
<li>数据表json字段改成text</li>
<li>增加登录账号密码错误翻译</li>
<li>增加 admin_javascript_json 函数,使大部分组件配置支持传递JS代码</li>
<li>Admin::color 增加暗黑模式颜色</li>
</ol>
<h2>v2.0.1-beta</h2>
<p>发布时间 2020/10/20</p>
<p>BUG修复</p>
<ul>
<li>修复数据表格过滤搜索BUG #599 </li>
<li>修复代码生成器生成控制器基类命名空间错误问题 #600 </li>
</ul>
<p>功能改进</p>
<ul>
<li>代码生成器增加页面标题以及面包屑翻译功能</li>
<li>异常处理优化</li>
<li>增加 admin_setting_array 函数</li>
</ul>