Source of file CMSNicetiesTraitForValidation.php
Size: 1,669 Bytes - Last Modified: 2021-12-23T10:39:07+00:00
/var/www/docs.ssmods.com/process/src/src/Traits/CMSNicetiesTraitForValidation.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?php namespace Sunnysideup\CMSNiceties\Traits; // use SilverStripe\Forms\GridField\GridFieldArchiveAction; trait CMSNicetiesTraitForValidation { public function validate() { $result = parent::validate(); $fieldLabels = $this->FieldLabels(); $indexes = $this->Config()->get('indexes'); $requiredFields = $this->Config()->get('required_fields'); if (is_array($requiredFields)) { foreach ($requiredFields as $field) { $isUniqueEntry = isset($indexes[$field], $indexes[$field]['type']) && 'unique' === $indexes[$field]['type']; if ($isUniqueEntry) { $id = (empty($this->ID) ? 0 : $this->ID); $value = $this->{$field}; // https://stackoverflow.com/questions/63227834/return-self-for-the-return-type-of-a-function-inside-a-php-trait $exists = self::get() ->filter([$field => $value]) ->exclude(['ID' => $id]) ->exists() ; if ($exists) { $myName = $fieldLabels[$field]; $result->addError( _t( self::class . '.' . $field . '_UNIQUE', $myName . ' needs to be unique' ), 'UNIQUE_' . self::class . '.' . $field ); } } } } return $result; } } |