LazyRecord\BaseModel::get PHP Method

get() public method

Get inflate value.
public get ( $key )
    public function get($key)
    {
        // relationship id can override value column.
        if ($relation = $this->getSchema()->getRelation($key)) {
            // use model query to load relational record.
            return $this->getRelationalRecords($key, $relation);
        }
        return $this->inflateColumnValue($key);
    }

Usage Example

Example #1
0
 protected function appendRecordInplace(DOMDocument $dom, DOMElement $root, BaseModel $record, SchemaInterface $schema = NULL, $recursive = true)
 {
     if (!$schema) {
         $schema = $record->getSchema();
     }
     $columns = $schema->getColumns();
     foreach ($columns as $column) {
         $columnElement = $dom->createElement($column->name);
         $columnElement->setAttribute('isa', $column->isa);
         if ($column->type) {
             $columnElement->setAttribute('type', $column->type);
         }
         if ($column->contentType) {
             $columnElement->setAttribute('content-type', $column->contentType);
         }
         $value = $record->getValue($column->name);
         $columnElement->appendChild(new DOMText($value));
         $root->appendChild($columnElement);
     }
     if (!$recursive) {
         return;
     }
     foreach ($schema->getRelations() as $rId => $r) {
         if ($r['type'] === Relationship::HAS_MANY) {
             $foreignRecords = $record->get($rId);
             if (!$foreignRecords || $foreignRecords->size() === 0) {
                 continue;
             }
             $relationElement = $dom->createElement($rId);
             $root->appendChild($relationElement);
             $relationElement->setAttribute('type', 'has-many');
             $collectionElement = $dom->createElement('collection');
             $relationElement->appendChild($collectionElement);
             foreach ($foreignRecords as $foreignRecord) {
                 $this->appendRecord($dom, $collectionElement, $foreignRecord, NULL, false);
             }
         } elseif ($r['type'] === Relationship::HAS_ONE) {
             $foreignRecord = $record->get($rId);
             if (!$foreignRecord) {
                 continue;
             }
             $relationElement = $dom->createElement($rId);
             $root->appendChild($relationElement);
             $relationElement->setAttribute('type', 'has-one');
             $this->appendRecord($dom, $relationElement, $foreignRecord, NULL, false);
         } elseif ($r['type'] === Relationship::MANY_TO_MANY) {
             $foreignRecords = $record->get($rId);
             if (!$foreignRecords || $foreignRecords->size() === 0) {
                 continue;
             }
             // $relationElement = $dom->createElement($rId);
             // $relationElement->setAttribute('type', 'many-to-many');
             // $root->ownerDocument->firstChild->appendChild($relationElement);
             // $relationElement->appendChild($collectionElement);
             $collectionElement = $dom->createElement('collection');
             $refNode = $root->ownerDocument->firstChild->insertBefore($collectionElement, $root->ownerDocument->firstChild->firstChild);
             foreach ($foreignRecords as $foreignRecord) {
                 $this->appendRecord($dom, $collectionElement, $foreignRecord, NULL, false);
             }
         }
     }
 }