Load device relationship from device cache (#12712)

* Load device relationship from device cache

* unrelated should be null, not a null object
This commit is contained in:
Tony Murray
2021-04-11 19:55:39 -05:00
committed by GitHub
parent 0b617db7f5
commit 0f1c4734d4

View File

@@ -24,6 +24,7 @@
namespace App\Models;
use App\Facades\DeviceCache;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class DeviceRelatedModel extends BaseModel
@@ -50,4 +51,19 @@ class DeviceRelatedModel extends BaseModel
{
return $this->belongsTo(\App\Models\Device::class, 'device_id', 'device_id');
}
// ---- Accessors/Mutators ----
/**
* Use cached device instance to load device relationships
*/
public function getDeviceAttribute(): ?Device
{
if (! $this->relationLoaded('device')) {
$device = DeviceCache::get($this->device_id);
$this->setRelation('device', $device->exists ? $device : null);
}
return $this->getRelationValue('device');
}
}