ContactRequest.php 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace app\Http\Requests;
  3. use Illuminate\Contracts\Validation\Validator;
  4. use Illuminate\Foundation\Http\FormRequest;
  5. use Illuminate\Http\Exceptions\HttpResponseException;
  6. use Illuminate\Validation\Rule;
  7. class ContactRequest extends FormRequest
  8. {
  9. public function authorize()
  10. {
  11. return true; // 確保這裡返回 true
  12. }
  13. /**
  14. * Get the validation rules that apply to the request.
  15. */
  16. public function rules(): array
  17. {
  18. return [
  19. 'source' => ['required','regex:/^(official|commercial|mall)$/'],
  20. 'name' => 'required',
  21. 'company' => 'required',
  22. 'phone' => 'required',
  23. 'email' => 'required|email',
  24. 'description' => 'required|max:1000',
  25. ];
  26. }
  27. /**
  28. * Get custom messages for validator errors.
  29. */
  30. public function messages(): array
  31. {
  32. return [
  33. 'email.required' => 'E-Mail必填',
  34. 'name.required' => '名稱必填',
  35. 'company.required' => '公司必填',
  36. 'phone.required' => '電話必填',
  37. 'description.required' => '詢問內容必填',
  38. 'email.email' => 'E-Mail格式錯誤',
  39. 'source.regex' => '來源內容不符',
  40. ];
  41. }
  42. /**
  43. * 處理驗證失敗的情況
  44. */
  45. protected function failedValidation(Validator $validator)
  46. {
  47. throw new HttpResponseException(response()->json([
  48. 'result' => "failed",
  49. 'message' => $validator->errors(),
  50. ], 400));
  51. }
  52. }