RolesController.php
3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 管理端控制层: 角色 控制类
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @category App\Admin\Controllers\User
* @package App\Admin\Controllers\User
* @author Richer <yangzi1028@163.com>
* @date 2021年01月27日 09:27:11
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Admin\Controllers\User;
use App\Models\Admin\Role;
use App\Admin\Forms\RoleForm;
use App\Admin\Grids\RoleGrid;
use Encore\Admin\Form;
use Encore\Admin\Grid;
/**
* Class RolesController.
*
* @category App\Admin\Controllers\User
* @package App\Admin\Controllers\User
* @author Richer <yangzi1028@163.com>
* @date 2021年01月27日 09:27:11
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
class RolesController extends BaseController
{
// 使用Grid和Form的trait
use RoleGrid, RoleForm;
/**
* RolesController constructor.
*
* @param Role $model 注入model
*/
public function __construct(Role $model)
{
// 资源显示的中名称
$this->title = $model::OBJ_NAME_ZH;
// 是否可查看
$this->can_view = false;
// 是否可新增
$this->can_create = true;
// 是否可编辑
$this->can_edit = true;
// 是否可删除
$this->can_delete = true;
// 是否开启下拉菜单
$this->dropdownActions = false;
// 执行父类构造方法
parent::__construct($model);
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$roleModel = config('admin.database.roles_model');
$grid = new Grid(new $roleModel());
$grid->column('id', 'ID')->sortable();
$grid->column('slug', trans('admin.slug'));
$grid->column('name', trans('admin.name'));
$grid->column('permissions', trans('admin.permission'))->pluck('name')->label();
$grid->column('created_at', trans('admin.created_at'));
$grid->column('updated_at', trans('admin.updated_at'));
$grid->actions(function (Grid\Displayers\Actions $actions) {
if ($actions->row->slug == 'administrator') {
$actions->disableDelete();
}
});
$grid->tools(function (Grid\Tools $tools) {
$tools->batch(function (Grid\Tools\BatchActions $actions) {
$actions->disableDelete();
});
});
return $grid;
}
/**
* Make a form builder.
*
* @return Form
*/
public function form($id = null)
{
$permissionModel = config('admin.database.permissions_model');
$roleModel = config('admin.database.roles_model');
$form = new Form(new $roleModel());
$form->display('id', 'ID');
$form->text('slug', trans('admin.slug'))->rules('required');
$form->text('name', trans('admin.name'))->rules('required');
$form->listbox('permissions', trans('admin.permissions'))->options($permissionModel::all()->pluck('name', 'id'));
$form->display('created_at', trans('admin.created_at'));
$form->display('updated_at', trans('admin.updated_at'));
return $form;
}
}