You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aquaculture/app/Admin/Controllers/ArticleNotificationControll...

107 lines
3.1 KiB

<?php
namespace App\Admin\Controllers;
use App\Models\ArticleNotification;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class ArticleNotificationController extends AdminController
{
/**
* 当前资源的标题
*
* @var string
*/
protected $title = '通知文章';
/**
* 创建网格构建器
*
* @return Grid 返回网格实例
*/
protected function grid()
{
// 创建新的网格实例
$grid = new Grid(new ArticleNotification);
// 按照最新的通知排序
$grid->model()->latest();
// 定义网格的列
$grid->column('id', __('Id')); // ID 列
$grid->column('title', __('Title')); // 标题列
$grid->column('created_at', __('Created at')); // 创建时间列
// 定义过滤器
$grid->filter(function (Grid\Filter $filter) {
$filter->like('id', __('Id')); // 按 ID 过滤
$filter->like('title', __('Title')); // 按标题过滤
});
// 自定义操作按钮
$grid->actions(function (Grid\Displayers\DropdownActions $actions) {
$actions->disableEdit(); // 禁用编辑操作
});
return $grid; // 返回创建的网格
}
/**
* 创建详情展示构建器
*
* @param mixed $id 通知文章的 ID
* @return Show 返回详情展示实例
*/
protected function detail($id)
{
// 创建新的详情展示实例
$show = new Show(ArticleNotification::findOrFail($id));
// 定义展示的字段
$show->field('id', __('Id')); // ID 字段
$show->field('title', __('Title')); // 标题字段
$show->field('content', __('Content'))->unescape(); // 内容字段,允许 HTML 解码
$show->field('created_at', __('Created at')); // 创建时间字段
return $show; // 返回创建的详情展示
}
/**
* 创建表单构建器
*
* @return Form 返回表单实例
*/
protected function form()
{
// 创建新的表单实例
$form = new Form(new ArticleNotification);
// 定义表单字段
$form->text('title', __('Title'))->help('请再三确认再发布,不可修改'); // 标题字段,带帮助信息
$form->kindeditor('content', __('Content')); // 内容字段,使用富文本编辑器
// 保存事件
$form->saving(function (Form $form) {
// 检查当前环境是否为开发环境
if (app()->environment('dev')) {
admin_toastr('开发环境不允许操作', 'error'); // 提示用户
return back()->withInput(); // 返回到表单
}
});
// 删除事件
$form->deleting(function (Form $form) {
// 检查当前环境是否为开发环境
if (app()->environment('dev')) {
admin_toastr('开发环境不允许操作', 'error'); // 提示用户
return back()->withInput(); // 返回到表单
}
});
return $form; // 返回创建的表单
}
}