IndexTipitakaRelatedParagraphRequest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Requests\V3;
  3. use Illuminate\Foundation\Http\FormRequest;
  4. /**
  5. * `GET /v3/tipitaka-related-paragraphs` 的入参:查一个段落的关联段落。
  6. *
  7. * 两种互斥的入口,必须二选一:
  8. * - 原功能:`book` + `para`,先定位锚点 (book_name, cs_para) 再查关联;
  9. * - 新过滤器:直接给 `book_name` + `cs_para` 查关联。
  10. *
  11. * 这是参数间依赖,用 FormRequest 表达,不是 v2 那种 `view=` 开关。
  12. */
  13. class IndexTipitakaRelatedParagraphRequest extends FormRequest
  14. {
  15. /**
  16. * 公共只读端点,不需要登录。
  17. */
  18. public function authorize(): bool
  19. {
  20. return true;
  21. }
  22. /**
  23. * @return array<string, array<int, string>>
  24. */
  25. public function rules(): array
  26. {
  27. return [
  28. 'book' => ['integer', 'min:1', 'required_without:book_name', 'required_with:para', 'prohibits:book_name,cs_para'],
  29. 'para' => ['integer', 'min:1', 'required_with:book'],
  30. 'book_name' => ['string', 'required_without:book', 'required_with:cs_para', 'prohibits:book,para'],
  31. 'cs_para' => ['integer', 'min:1', 'required_with:book_name'],
  32. 'book_id' => ['integer', 'min:1'],
  33. ];
  34. }
  35. }