GreenPlan.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace app\common\validate;
  3. use think\Validate;
  4. class GreenPlan extends Validate
  5. {
  6. /**
  7. * 定义验证规则
  8. * 格式:'字段名' => ['规则1','规则2'...]
  9. *
  10. * @var array
  11. */
  12. protected $rule = [
  13. 'title|计划名称' => 'require|length:1,100',
  14. 'start_time|计划开始时间' => 'require|date|checkStartTime',
  15. 'end_time|计划结束时间' => 'require|date',
  16. 'content' => 'require|checkContent'
  17. ];
  18. /**
  19. * 定义错误信息
  20. * 格式:'字段名.规则名' => '错误信息'
  21. *
  22. * @var array
  23. */
  24. protected $message = [
  25. 'title.length' => '计划名称必须在100字以内',
  26. 'content.require' => '未设置任务',
  27. ];
  28. protected function checkStartTime($value,$rule,$data=[])
  29. {
  30. $curDay = date('Y-m-d');
  31. if($curDay > $data['start_time']){
  32. return '计划开始时间不能小于当前时间';
  33. }
  34. if($data['start_time'] > $data['end_time']){
  35. return '计划结束时间不能大于计划开始时间';
  36. }
  37. return true;
  38. }
  39. protected function checkContent($value,$rule,$data=[])
  40. {
  41. $content = json_decode($data['content'],true);
  42. if(!$content){
  43. return '未设置任务';
  44. }
  45. if(empty($content['addrForms'])){
  46. return '未设置地点';
  47. }
  48. if(empty($content['tasks']['list'])){
  49. return '未设置任务';
  50. }
  51. return true;
  52. }
  53. }