eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper::extractFieldFromRow PHP Method

extractFieldFromRow() public method

Creates a FieldDefinition from the data in $row.
public extractFieldFromRow ( array $row ) : eZ\Publish\SPI\Persistence\Content\Type\FieldDefinition
$row array
return eZ\Publish\SPI\Persistence\Content\Type\FieldDefinition
    public function extractFieldFromRow(array $row)
    {
        $storageFieldDef = $this->extractStorageFieldFromRow($row);
        $field = new FieldDefinition();
        $field->id = (int) $row['ezcontentclass_attribute_id'];
        $field->name = unserialize($row['ezcontentclass_attribute_serialized_name_list']);
        $field->description = unserialize($row['ezcontentclass_attribute_serialized_description_list']);
        // Unset redundant data
        unset($field->name['always-available'], $field->name[0], $field->description['always-available'], $field->description[0]);
        $field->identifier = $row['ezcontentclass_attribute_identifier'];
        $field->fieldGroup = $row['ezcontentclass_attribute_category'];
        $field->fieldType = $row['ezcontentclass_attribute_data_type_string'];
        $field->isTranslatable = $row['ezcontentclass_attribute_can_translate'] == 1;
        $field->isRequired = $row['ezcontentclass_attribute_is_required'] == 1;
        $field->isInfoCollector = $row['ezcontentclass_attribute_is_information_collector'] == 1;
        $field->isSearchable = (bool) $row['ezcontentclass_attribute_is_searchable'];
        $field->position = (int) $row['ezcontentclass_attribute_placement'];
        $this->toFieldDefinition($storageFieldDef, $field);
        return $field;
    }

Usage Example

 /**
  * Returns field definition for the given field definition id
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException If field definition is not found
  *
  * @param mixed $id
  * @param int $status One of Type::STATUS_DEFINED|Type::STATUS_DRAFT|Type::STATUS_MODIFIED
  *
  * @return \eZ\Publish\SPI\Persistence\Content\Type\FieldDefinition
  */
 public function getFieldDefinition($id, $status)
 {
     $row = $this->contentTypeGateway->loadFieldDefinition($id, $status);
     if ($row === false) {
         throw new NotFoundException("FieldDefinition", array("id" => $id, "status" => $status));
     }
     return $this->mapper->extractFieldFromRow($row);
 }