ShareMessage.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php namespace App\Http\Requests\Admin;
  2. use App\Http\Requests\BaseRequest;
  3. use Illuminate\Validation\Rule;
  4. /**
  5. * 分享配置
  6. *
  7. */
  8. class ShareMessage extends BaseRequest
  9. {
  10. /**
  11. * 获取应用于请求的规则
  12. *
  13. * @return array
  14. */
  15. public function rules()
  16. {
  17. // 编辑时排除ID
  18. $id = request('id',null);
  19. // 非重规则
  20. $unique = Rule::unique('share_message')->where(function ($query) {
  21. return $query->where(['pages'=>request('pages',''),'item_id'=>request('item_id',0)]);
  22. })->ignore($id);
  23. // 返回结果
  24. return [
  25. // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
  26. // 验证字段,验证规则,提示信息
  27. 'pages' => ['required',$unique],
  28. 'id' => 'required|integer|gt:0',
  29. ];
  30. }
  31. // 场景列表
  32. protected $scenes = [
  33. 'add' => ['pages'],
  34. 'edit' => ['id','pages'],
  35. 'set_status' => ['id'],
  36. ];
  37. /**
  38. * 获取已定义验证规则的错误消息
  39. *
  40. * @return array
  41. */
  42. public function messages()
  43. {
  44. return [
  45. 'pages.required' => '页面路径必填',
  46. 'pages.unique' => '页面路径已经存在',
  47. 'id.required' => 'ID未知',
  48. 'id.integer' => 'ID格式错误',
  49. 'id.gt' => 'ID格式错误',
  50. ];
  51. }
  52. }