CRUDlex\ManyValidator::isValid PHP Method

isValid() public method

public isValid ( $value, array $parameters )
$parameters array
    public function isValid($value, array $parameters)
    {
        if (in_array($value, [null, ''])) {
            return true;
        }
        $data = $parameters[0];
        $field = $parameters[1];
        $manyEntity = $data->getDefinition()->getSubTypeField($field, 'many', 'entity');
        $validIds = array_keys($data->getIdToNameMap($manyEntity, null));
        $candidateIds = array_column($value, 'id');
        foreach ($candidateIds as $candidateId) {
            if (!in_array($candidateId, $validIds)) {
                return false;
            }
        }
        return true;
    }

Usage Example

Beispiel #1
0
 public function testValidate()
 {
     $validator = new ManyValidator();
     $parameters = [$this->dataLibrary, 'libraryBook'];
     $read = $validator->isValid([['id' => $this->entityBook->get('id')]], $parameters);
     $this->assertTrue($read);
     $read = $validator->isValid([['id' => $this->entityBook->get('id') + 1]], $parameters);
     $this->assertFalse($read);
     $read = $validator->isValid(null, $parameters);
     $this->assertTrue($read);
     $read = $validator->isValid('', $parameters);
     $this->assertTrue($read);
 }