直接设置表单项

setFormItems('表单项数据')

addFormItems方法作用相同,也是一次性添加多个表单项,不同之处在于,setFormItems方法需要写上参数名,但不要求顺序,比如上一节的例子。

  1. return ZBuilder::make('form')
  2. ->addFormItems([
  3. ['text', 'title', '标题'],
  4. ['textarea', 'summary', '摘要'],
  5. ['ueditor', 'content', '内容'],
  6. ['image', 'pic', '封面'],
  7. ['tags', 'tags', '标签'],
  8. ['file', 'files', '附件']
  9. ])
  10. ->fetch();

用setFormItems方法实现相同的表单

  1. return ZBuilder::make('form')
  2. ->setFormItems(
  3. [
  4. [
  5. 'type' => 'text',
  6. 'name' => 'title',
  7. 'title' => '标题'
  8. ],
  9. [
  10. 'type' => 'textarea',
  11. 'title' => '摘要',
  12. 'name' => 'summary'
  13. ],
  14. [
  15. 'type' => 'ueditor',
  16. 'name' => 'content',
  17. 'title' => '内容'
  18. ],
  19. [
  20. 'type' => 'image',
  21. 'name' => 'pic',
  22. 'title' => '封面'
  23. ],
  24. [
  25. 'type' => 'tags',
  26. 'name' => 'tags',
  27. 'title' => '标签'
  28. ],
  29. [
  30. 'type' => 'file',
  31. 'name' => 'files',
  32. 'title' => '附件'
  33. ]
  34. ]
  35. )
  36. ->fetch();

这个方法一般用的比较少,比如从数据库读取表单项数据的就可以用这个方法。

需要注意的是,如果添加的是分组,需指定type和options,比如:

  1. return ZBuilder::make('form')
  2. ->setFormItems(
  3. [
  4. [
  5. 'type' => 'text',
  6. 'name' => 'title',
  7. 'title' => '标题'
  8. ],
  9. [
  10. 'type' => 'textarea',
  11. 'title' => '摘要',
  12. 'name' => 'summary'
  13. ],
  14. [
  15. 'type' => 'ueditor',
  16. 'name' => 'content',
  17. 'title' => '内容'
  18. ],
  19. [
  20. 'type' => 'image',
  21. 'name' => 'pic',
  22. 'title' => '封面'
  23. ],
  24. [
  25. 'type' => 'tags',
  26. 'name' => 'tags',
  27. 'title' => '标签'
  28. ],
  29. [
  30. 'type' => 'file',
  31. 'name' => 'files',
  32. 'title' => '附件'
  33. ],
  34. [
  35. 'type' => 'group',
  36. 'options' => [
  37. '微信支付' =>[
  38. [
  39. 'type' => 'text',
  40. 'name' => 'appid1',
  41. 'title' => 'APPID'
  42. ],
  43. [
  44. 'type' => 'text',
  45. 'name' => 'appkey1',
  46. 'title' => 'APPKEY'
  47. ]
  48. ],
  49. '支付宝支付' =>[
  50. [
  51. 'type' => 'text',
  52. 'name' => 'appid2',
  53. 'title' => 'APPID'
  54. ],
  55. [
  56. 'type' => 'text',
  57. 'name' => 'appkey2',
  58. 'title' => 'APPKEY'
  59. ]
  60. ]
  61. ]
  62. ]
  63. ]
  64. )
  65. ->fetch();