Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function getRelatedAttribute($name)
- {
- // $var = $order->CustomerAddressAddress_line_1;
- // $var = $order->getCustomer()->getAddress()->address_line_1;
- $dashSeperated = trim(strtolower(preg_replace('/(?<![A-Z])[A-Z]/', '-\0', $name)), '-');
- $arr = explode('-', $dashSeperated);
- $self = $this;
- while ($name = array_shift($arr)) {
- $self = $self->$name;
- }
- return $self;
- }
- public function __get($name)
- {
- try {
- return parent::__get($name);
- } catch (\Exception $e) {
- try {
- return $this->getRelatedAttribute($name);
- } catch (\Exception $ex ){
- if (method_exists($this, 'set' . $name)) {
- throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
- } else {
- throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement