src/Notifynder/Traits/NotifableLaravel53.php
<?php
namespace Fenos\Notifynder\Traits;
use Fenos\Notifynder\Models\Notification;
/**
* Class Notifable.
*/
trait NotifableLaravel53
{
use NotifableBasic;
/**
* Define a polymorphic one-to-many relationship.
*
* @param string $related
* @param string $name
* @param string $type
* @param string $id
* @param string $localKey
* @return \Illuminate\Database\Eloquent\Relations\MorphMany
*/
abstract public function morphMany($related, $name, $type = null, $id = null, $localKey = null);
/**
* Define a one-to-many relationship.
*
* @param string $related
* @param string $foreignKey
* @param string $localKey
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
abstract public function hasMany($related, $foreignKey = null, $localKey = null);
/**
* Get the notifications Relationship.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany|\Illuminate\Database\Eloquent\Relations\MorphMany
*/
public function notifynderNotifications()
{
$model = app('notifynder.resolver.model')->getModel(Notification::class);
if (notifynder_config()->isPolymorphic()) {
return $this->morphMany($model, 'to');
}
return $this->hasMany($model, 'to_id');
}
/**
* Get the notifications Relationship without any eager loading.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany|\Illuminate\Database\Eloquent\Relations\MorphMany
*/
public function getLazyNotificationRelation()
{
return $this->notifynderNotifications();
}
}