Range.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. $this->id = $this->formatId($this->column);
  19. }
  20. protected function prepareInputValue($value)
  21. {
  22. if ($value === '') {
  23. $value = null;
  24. }
  25. return $value;
  26. }
  27. /**
  28. * {@inheritdoc}
  29. */
  30. public function getValidationMessages()
  31. {
  32. // Default validation message.
  33. $messages = parent::getValidationMessages();
  34. $result = [];
  35. foreach ($messages as $key => $message) {
  36. $column = explode('.', $key);
  37. $rule = array_pop($column);
  38. $column = implode('.', $column);
  39. if ($this->column['start'] === $column) {
  40. $result[$column.'start.'.$rule] = $message;
  41. } else {
  42. $result[$key] = $message;
  43. }
  44. }
  45. return $result;
  46. }
  47. }