setWithConstraint() public method

If the storage backend should also create a constraint so its not possible to pass a invalid reference id.
public setWithConstraint ( boolean $withConstraint )
$withConstraint boolean
Example #1
0
 /**
  * @param Configs $configs
  * @return RelationDefinition|null
  * @throws \Jarves\Exceptions\ModelBuildException
  */
 protected function getRelation(Configs $configs)
 {
     $field = $this->getFieldDefinition();
     $columns = [];
     $foreignObjectDefinition = $configs->getObject($field->getObject());
     if (!$foreignObjectDefinition) {
         throw new ModelBuildException(sprintf('ObjectKey `%s` not found for field `%s` in object `%s`', $field->getObject(), $field->getId(), $field->getObjectDefinition()->getId()));
     }
     $relation = new RelationDefinition();
     $relation->setName($field->getId());
     $relation->setType($field->getObjectRelation());
     $relation->setForeignObjectKey($field->getObject());
     $relation->setWithConstraint($field->getObjectRelationWithConstraint());
     if ($refName = $field->getObjectRefRelationName()) {
         $relation->setRefName($refName);
     }
     foreach ($foreignObjectDefinition->getPrimaryKeys() as $pk) {
         $fieldColumns = $pk->getFieldType()->getColumns();
         $columns = array_merge($columns, $fieldColumns);
     }
     if (!$columns) {
         return null;
     }
     $references = [];
     foreach ($columns as $column) {
         $reference = new RelationReferenceDefinition();
         $localColumn = clone $column;
         $localColumn->setName($field->getId() . ucfirst($column->getName()));
         $reference->setLocalColumn($localColumn);
         $reference->setForeignColumn($column);
         $references[] = $reference;
     }
     $relation->setReferences($references);
     return $relation;
 }