Exemple #1
0
 /**
  * @param string $name
  * @return mixed
  */
 public function getColumn(string $name)
 {
     if ($this->dehidrated) {
         $this->hydrate();
     }
     if ($this->deleted) {
         throw new RuntimeException("The record was deleted");
     }
     if (array_key_exists($name, $this->columns)) {
         return $this->columns[$name];
     }
     if (!array_key_exists($name, $this->rawColumns)) {
         throw new RuntimeException("Unknown column '{$name}'");
     }
     $value = $this->rawColumns[$name];
     $casts = $this->mapper->getTypeCasts();
     if (isset($casts[$name])) {
         $value = $this->castGet($value, $casts[$name]);
     }
     if ($name === $this->mapper->getPrimaryKey()) {
         return $this->columns[$name] = $value;
     }
     $getters = $this->mapper->getGetters();
     if (isset($getters[$name])) {
         $value = $getters[$name]($value);
     }
     return $this->columns[$name] = $value;
 }