ContactController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Services\LiquidRenderer;
  5. use App\Models\DistInquiry;
  6. class ContactController extends Controller
  7. {
  8. protected $liquidRenderer;
  9. public function __construct(LiquidRenderer $liquidRenderer)
  10. {
  11. $this->liquidRenderer = $liquidRenderer;
  12. }
  13. function create()
  14. {
  15. //模板支持多级目录,需要目录符号
  16. $output = LiquidRenderer::render('contact_create.liquid', [
  17. 'csrf_token' => csrf_token()
  18. ]);
  19. return response($output);
  20. }
  21. function store(Request $request)
  22. {
  23. try {
  24. // 验证 CSRF Token
  25. if (!$request->has('_token') || $request->input('_token') !== csrf_token()) {
  26. return response()->json([
  27. 'status' => 'error',
  28. 'message' => 'Invalid token.',
  29. ], 403); // 返回 HTTP 403 错误
  30. }
  31. // 从请求中获取所有数据
  32. $data = $request->all();
  33. // 指定特殊字段的值
  34. $data['dist_id'] = 0; // app('dist')->id; // 指定当前登录的分销商ID
  35. // 使用模型的 create 方法插入数据
  36. $distInquiry = DistInquiry::create($data);
  37. // 如果插入失败,抛出异常
  38. if (!$distInquiry) {
  39. throw new \Exception('submit failed, please try again later. ');
  40. }
  41. // 成功时的响应
  42. $response = [
  43. 'status' => 'success'
  44. ];
  45. return response()->json($response, 200);
  46. } catch (\Exception $e) {
  47. // 捕获所有异常并返回错误信息
  48. $response = [
  49. 'status' => 'error',
  50. 'message' => 'submit failed, please try again later. ',
  51. ];
  52. return response()->json($response, 500); // 返回 HTTP 500 错误
  53. }
  54. }
  55. }