use
App
\
Admin
\
Repositories
\
Custom
;
use
App
\
Common
\
Enums
\
CategoryEnum
;
use
Dcat
\
Admin
\
Admin
;
use
Dcat
\
Admin
\
Grid
;
class
CustomController
extends
AdminController
* Make a grid builder.
* @return Grid
protected
function
grid
(
)
{
return
Grid
::
make
(
new
Custom
(
)
,
function
(
Grid
$grid
)
{
if
(
request
(
)
->
get
(
'_view_'
)
!==
'list'
)
{
$grid
->
view
(
'admin.custom.index'
)
;
$grid
->
paginate
(
50
)
;
$grid
->
column
(
'url'
,
'图片'
)
->
image
(
''
,
100
)
;
$grid
->
column
(
'title'
,
'名称'
)
;
$grid
->
column
(
'link'
,
'链接'
)
;
$grid
->
column
(
'num'
,
'下载次数'
)
;
$grid
->
selector
(
function
(
Grid
\
Tools
\
Selector
$selector
)
{
$selector
->
selectOne
(
'cate'
,
'分类'
,
$cates
)
;
$selector
->
selectOne
(
'type'
,
'日期'
,
[
0
=>
'今天'
,
1
=>
'昨天'
,
7
=>
'近一周'
,
30
=>
'近一月'
]
)
;
}
)
;
$grid
->
disableFilterButton
(
)
;
$grid
->
disableActions
(
)
;
$grid
->
withBorder
(
)
;
$grid
->
disableRowSelector
(
)
;
$grid
->
disableCreateButton
(
)
;
$grid
->
disableRefreshButton
(
)
;
}
)
;
上述为控制器代码,如果使用了框架自带的字段属性,在视图页面会转义携带过去,如:$grid->column(‘url’, ‘图片’)->image(’’, 100);使用了image,那么在视图中url字段内容就是一个完整的<img>标签
{{-- 选择器 --}}
{!! $grid->renderSelector() !!}
{{-- 自定义表格 --}}
<ul class="mailbox-attachments clearfix table custom-data-table data-table p-0" id="grid-table">
@foreach($grid->rows() as $row)
<div class="mailbox-attachment-img">
<span class="mailbox-attachment-icon has-img">
{!! $row->url !!}
</span>
</div>
<div class="mailbox-attachment-info">
<div class="recharge-info">
下载次数:{{$row->num}}
</div>
<div class="recharge-button" data-url="{{$row->link}}">
查看作品信息
</div>
</span>
</div>
@endforeach
{{-- 分页 --}}
{!! $grid->renderPagination() !!}
如上所示:
$grid->rows() 为表格列表内容,可以自己再上述自定义表格注释下开发自已相要的样式效果
{!! $grid->renderSelector() !!} 为框架自带的筛选器
{!! $grid->renderPagination() !!} 为框架自带的分页
这边使用Dcat-Admin开发后端,需要自定义表格样式,但是这边又想使用框架自带的分页和筛选功能,这边查看框架的源码,然后按照下面的写法实现了需求<?phpnamespace App\Admin\Controllers;use App\Admin\Repositories\Custom;use App\Common\Enums\CategoryEnum;use Dcat\Admin\Admin;use Dcat\Admin\Grid;class CustomControlle.
namespace App\Admin\Extensions\Tools;
use Encore\Admin\Admin;
use Encore\Admin\Grid\Tools\AbstractTool;
use Illuminate\Support\Facades\Request;
class ShowArtwork extends AbstractTool
protected $url;
protected $icon
dcat-admin extension
是一个中国省市区三级联动选择组件,这个包是基于Distpicker的dcat-admin扩展,用来将Distpicker集成进dcat-admin的表单中,本包参考了/
composer require super-eggs/dcat-admin-extensions-distpicker
php artisan admin:import dcat-admin-extensions-distpicker
表单中使用
比如在表中有三个字段province_id, city_id, district_id, 在form表单中使用它:
$form->distpicker(['province_id', 'city_id', 'district_id']);
设置默认值
$form->distpicker(
composer require dcat-admin-extension/ueditor
然后执行以下命令导入前端静态文件:
php artisan admin:import ueditor
最后用浏览器打开http://localhost:8000/admin/helpers/extensions找到ueditor这一行,点击启用按钮,即可使用。
除了通过界面启用扩展,也可以手动开启扩展:打开config/admin-extensions.php(如果文件不存在请手动创建),加入以下代码:
return [
'ueditor' => [
'enable' => true,
首先得感谢一下大佬 @z-song,这个项目是基于 laravel-admin 二次开发的,laravel-admin 也是我搬砖至今用过的对后端程序员最友好的后台构建工具,没有之一,包括 Laravel nova 也没有这个用的爽快。初次接触laravel-admin 我就被大佬的设计惊艳到了,就有一种原来后台原来还能这样写的感觉。大家可以把这个项目视为 laravel-admin 的船新版本哈哈哈。
这个项目从 commit 的第一个版本开始,到现在已经接近一
(1)打开app/Admin/bootstrap.php:追加一下代码
use Encore\Admin\Facades\Admin;
Admin::navbar(function (\Encore\Admin\Widgets\Navbar $navbar) {
$navbar->right(new \App\Admin\Extensions\Clear());
$grid->id->using([1 => '未处理', 2 => '已处理'])->label([
'default' => 'primary', // 设置默认颜色,不设置则默认为 default
1 => 'primary',
2 => 'danger',
$grid->state
->using([1 => '未处理', 2 => '已处理', ...])
Dcat admin 使用数据仓库实现复杂表格数据
框架文档地址:https://learnku.com/docs/dcat-admin/2.x/basic-use/8123#352645
1、创建 TestRepository 类继承 Dcat\Admin\Repositories\QueryBuilderRepository 类
<?php
namespace App\Admin\Repositories;
use Dcat\Admin\Repositories\QueryBuilderRe
随着 d
cat-
admin 越来越多的人使用,相信有许多跟我一样热爱这个项目的的人最后也会参与到这个项目中来,从使用者到项目的维护者,可以为项目贡献一份自己的力量。我以后也会将维护这个项目的一些心得,底层代码的实现都以博文的形式分享给大家。
有个同学提了一个这样的需求 ; 需要在表单 / 详情支持多栏布局,而这个需求刚好我自己用 d
cat-
admin 做项目时候也遇到过。尤其是 form 表单字段比较多的时候,我开始的解决方案是通过 form 的 tab 来减少表单一页的字段数量。
Redis提示MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on
Laravel关于请求参数空字符串转null问题