Skip to content

Commit 93b4104

Browse files
committed
Return empty Record object if requested related record is null
1 parent d966a51 commit 93b4104

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

Tests/Unit/RecordTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public function testEmpty() : void
2929
$this->assertFalse(empty($order->employee));
3030
$this->assertFalse(empty($order->employee_id));
3131
$order->employee = new \Tests\Fixtures\Record\Employee();
32+
$this->assertTrue($order->employee->empty());
33+
$this->assertFalse($order->employee->loaded());
3234
$this->assertTrue(empty($order->employee));
3335
$this->assertNull($order->employee_id);
3436
}

src/PHPFUI/ORM/Record.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,17 @@ public function __get(string $field) : mixed
128128
return $this->current[$field] ?? null;
129129
}
130130

131+
// could be a related record, see if has a matching Id
132+
if (\array_key_exists($field . \PHPFUI\ORM::$idSuffix, static::$fields))
133+
{
134+
$type = '\\' . \PHPFUI\ORM::$recordNamespace . '\\' . \PHPFUI\ORM::getBaseClassName($field);
135+
136+
if (\class_exists($type))
137+
{
138+
return new $type($this->current[$field . \PHPFUI\ORM::$idSuffix]);
139+
}
140+
}
141+
131142
return parent::__get($field);
132143
}
133144

0 commit comments

Comments
 (0)