belongsTo('Oxbow\User', 'created_by'); } /** * Relation for the user that updated this entity. * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function updatedBy() { return $this->belongsTo('Oxbow\User', 'updated_by'); } /** * Compares this entity to another given entity. * Matches by comparing class and id. * @param $entity * @return bool */ public function matches($entity) { return [get_class($this), $this->id] === [get_class($entity), $entity->id]; } /** * Gets the activity for this entity. * @return \Illuminate\Database\Eloquent\Relations\MorphMany */ public function activity() { return $this->morphMany('Oxbow\Activity', 'entity')->orderBy('created_at', 'desc'); } /** * Allows checking of the exact class, Used to check entity type. * Cleaner method for is_a. * @param $type * @return bool */ public function isA($type) { return $this->getName() === strtolower($type); } public function getName() { $fullClassName = get_class($this); return strtolower(array_slice(explode('\\', $fullClassName), -1, 1)[0]); } }