Range.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace Dcat\Admin\Form\Field;
  3. use Dcat\Admin\Form\Field;
  4. class Range extends Field
  5. {
  6. /**
  7. * Column name.
  8. *
  9. * @var array
  10. */
  11. protected $column = [];
  12. public function __construct($column, $arguments)
  13. {
  14. $this->column['start'] = $column;
  15. $this->column['end'] = $arguments[0];
  16. array_shift($arguments);
  17. $this->label = $this->formatLabel($arguments);
  18. }
  19. protected function prepareInputValue($value)
  20. {
  21. if ($value === '') {
  22. $value = null;
  23. }
  24. return $value;
  25. }
  26. /**
  27. * {@inheritdoc}
  28. */
  29. public function getValidationMessages()
  30. {
  31. // Default validation message.
  32. $messages = parent::getValidationMessages();
  33. $result = [];
  34. foreach ($messages as $key => $message) {
  35. $column = explode('.', $key);
  36. $rule = array_pop($column);
  37. $column = implode('.', $column);
  38. if ($this->column['start'] === $column) {
  39. $result[$column.'start.'.$rule] = $message;
  40. } else {
  41. $result[$key] = $message;
  42. }
  43. }
  44. return $result;
  45. }
  46. }