model()->latest('start_date'); // 按照开始日期降序排列优惠券模板 // 定义网格列 $grid->column('id', __('Id')); // 显示记录ID $grid->column('title', __('Title')); // 显示优惠券标题 $grid->column('amount', '优惠金额'); // 显示优惠金额 $grid->column('full_amount', __('Full amount')); // 显示满额金额 $grid->column('score', '需兑换积分'); // 显示需兑换的积分 // 显示有效日期范围 $grid->column('exp_date', '有效日期')->display(function () { return $this->start_date . ' ~ ' . $this->end_date; // 显示开始日期和结束日期 }); $today = Carbon::today(); // 获取今天的日期 // 显示优惠券是否有效(未过期) $grid->column('overtime', '是否有效(未过期)')->display(function () use ($today) { $endDate = Carbon::make($this->end_date); // 将结束日期转换为 Carbon 实例 $startDate = Carbon::make($this->start_date); // 将开始日期转换为 Carbon 实例 // 检查是否有结束日期和开始日期 if (is_null($endDate) || is_null($startDate)) { $isOver = true; // 如果没有结束日期,代表永远不过期 } else { // 检查今天的日期是否在有效日期范围内 $isOver = $today->gte($startDate) && $today->lte($endDate); } return YesNoTransform::trans($isOver); // 使用 YesNoTransform 转换布尔值为可读格式 }); $grid->column('created_at', __('Created at')); // 显示创建时间 // 定义过滤器 $grid->filter(function (Grid\Filter $filter) { $filter->like('title', __('Title')); // 允许通过优惠券标题进行模糊查询 }); return $grid; // 返回构建好的网格 } /** * 创建表单构建器. * * @return Form 返回表单实例 */ protected function form() { $form = new Form(new CouponTemplate); // 创建新的表单实例,基于 CouponTemplate 模型 $form->text('title', __('Title')); // 输入优惠券标题 $form->decimal('amount', '优惠金额'); // 输入优惠金额 $form->decimal('full_amount', __('Full amount')); // 输入满额金额 $form->number('score', __('Score')) // 输入需兑换积分 ->default(0) // 默认值为 0 ->help('设置为 0 代表无需积分即可兑换优惠券'); // 帮助提示 $form->date('start_date', __('Start date')) // 输入开始日期 ->default(date('Y-m-d')); // 默认设置为今天 $form->date('end_date', __('End date')) // 输入结束日期 ->default(Carbon::today()->addMonth()); // 默认设置为一个月后 return $form; // 返回构建好的表单 } }