Bravo3\Orm\Services\Io\Reader::getPropertyValue PHP Метод

getPropertyValue() публичный Метод

Get the value of a property on the entity
public getPropertyValue ( string $name ) : mixed
$name string
Результат mixed
    public function getPropertyValue($name)
    {
        if ($column = $this->metadata->getColumnByProperty($name)) {
            $getter = $column->getGetter();
            if (!method_exists($this->entity, $getter)) {
                throw new InvalidArgumentException("Getter '" . $getter . "' does not exist for property '" . $name . "'");
            }
            return $this->entity->{$getter}();
        } elseif ($relationship = $this->metadata->getRelationshipByName($name)) {
            $getter = $relationship->getGetter();
            if (!method_exists($this->entity, $getter)) {
                throw new InvalidArgumentException("Getter '" . $getter . "' does not exist for relationship '" . $name . "'");
            }
            return $this->entity->{$getter}();
        } else {
            throw new InvalidArgumentException("No column/relationship found for property '" . $name . "'");
        }
    }

Usage Example

Пример #1
0
 /**
  * Serialise the entity
  *
  * @param Entity $metadata
  * @param object $entity
  * @return SerialisedData
  */
 public function serialise(Entity $metadata, $entity)
 {
     $data = new \stdClass();
     $reader = new Reader($metadata, $entity);
     foreach ($metadata->getColumns() as $column) {
         $this->assignValue($data, $column, $reader->getPropertyValue($column->getProperty()));
     }
     return new SerialisedData(self::SERIALISER_CODE, json_encode($data, self::ENCODE_OPTIONS, self::ENCODE_DEPTH));
 }
All Usage Examples Of Bravo3\Orm\Services\Io\Reader::getPropertyValue