FormHelper.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <?php
  2. namespace App\Module\Friend\AdminControllers\Helper;
  3. use Dcat\Admin\Form;
  4. use Dcat\Admin\Form\Field;
  5. /**
  6. * 表单助手类
  7. *
  8. * 用于辅助构建后台表单
  9. */
  10. class FormHelper
  11. {
  12. /**
  13. * Form 实例
  14. *
  15. * @var Form
  16. */
  17. protected $form;
  18. /**
  19. * 构造函数
  20. *
  21. * @param Form $form
  22. */
  23. public function __construct(Form $form)
  24. {
  25. $this->form = $form;
  26. }
  27. /**
  28. * 创建实例
  29. *
  30. * @param Form $form
  31. * @return static
  32. */
  33. public static function make(Form $form)
  34. {
  35. return new static($form);
  36. }
  37. /**
  38. * 添加显示字段
  39. *
  40. * @param string $name
  41. * @param string $label
  42. * @return Field\Display
  43. */
  44. public function display(string $name, string $label): Field\Display
  45. {
  46. return $this->form->display($name, $label);
  47. }
  48. /**
  49. * 添加文本字段
  50. *
  51. * @param string $name
  52. * @param string $label
  53. * @return Field\Text
  54. */
  55. public function text(string $name, string $label): Field\Text
  56. {
  57. return $this->form->text($name, $label);
  58. }
  59. /**
  60. * 添加文本域字段
  61. *
  62. * @param string $name
  63. * @param string $label
  64. * @return Field\Textarea
  65. */
  66. public function textarea(string $name, string $label): Field\Textarea
  67. {
  68. return $this->form->textarea($name, $label);
  69. }
  70. /**
  71. * 添加数字字段
  72. *
  73. * @param string $name
  74. * @param string $label
  75. * @return Field\Number
  76. */
  77. public function number(string $name, string $label): Field\Number
  78. {
  79. return $this->form->number($name, $label);
  80. }
  81. /**
  82. * 添加选择字段
  83. *
  84. * @param string $name
  85. * @param string $label
  86. * @return Field\Select
  87. */
  88. public function select(string $name, string $label): Field\Select
  89. {
  90. return $this->form->select($name, $label);
  91. }
  92. /**
  93. * 添加单选字段
  94. *
  95. * @param string $name
  96. * @param string $label
  97. * @return Field\Radio
  98. */
  99. public function radio(string $name, string $label): Field\Radio
  100. {
  101. return $this->form->radio($name, $label);
  102. }
  103. /**
  104. * 添加复选框字段
  105. *
  106. * @param string $name
  107. * @param string $label
  108. * @return Field\Checkbox
  109. */
  110. public function checkbox(string $name, string $label): Field\Checkbox
  111. {
  112. return $this->form->checkbox($name, $label);
  113. }
  114. /**
  115. * 添加日期字段
  116. *
  117. * @param string $name
  118. * @param string $label
  119. * @return Field\Date
  120. */
  121. public function date(string $name, string $label): Field\Date
  122. {
  123. return $this->form->date($name, $label);
  124. }
  125. /**
  126. * 添加日期时间字段
  127. *
  128. * @param string $name
  129. * @param string $label
  130. * @return Field\Datetime
  131. */
  132. public function datetime(string $name, string $label): Field\Datetime
  133. {
  134. return $this->form->datetime($name, $label);
  135. }
  136. /**
  137. * 添加时间字段
  138. *
  139. * @param string $name
  140. * @param string $label
  141. * @return Field\Time
  142. */
  143. public function time(string $name, string $label): Field\Time
  144. {
  145. return $this->form->time($name, $label);
  146. }
  147. /**
  148. * 添加图片上传字段
  149. *
  150. * @param string $name
  151. * @param string $label
  152. * @return Field\Image
  153. */
  154. public function image(string $name, string $label): Field\Image
  155. {
  156. return $this->form->image($name, $label);
  157. }
  158. /**
  159. * 添加文件上传字段
  160. *
  161. * @param string $name
  162. * @param string $label
  163. * @return Field\File
  164. */
  165. public function file(string $name, string $label): Field\File
  166. {
  167. return $this->form->file($name, $label);
  168. }
  169. /**
  170. * 添加隐藏字段
  171. *
  172. * @param string $name
  173. * @param string $label
  174. * @return Field\Hidden
  175. */
  176. public function hidden(string $name, string $label = ''): Field\Hidden
  177. {
  178. return $this->form->hidden($name, $label);
  179. }
  180. /**
  181. * 添加开关字段
  182. *
  183. * @param string $name
  184. * @param string $label
  185. * @return Field\Switch
  186. */
  187. public function switch(string $name, string $label): Field\Switch_
  188. {
  189. return $this->form->switch($name, $label);
  190. }
  191. /**
  192. * 添加JSON字段
  193. *
  194. * @param string $name
  195. * @param string $label
  196. * @return Field\Json
  197. */
  198. public function json(string $name, string $label): Field\Json
  199. {
  200. return $this->form->json($name, $label);
  201. }
  202. }