. */ namespace Modules\Newsletter; use Common\SimpleModelTrait; use Illuminate\Database\Eloquent\Model; class Destinatario extends Model { use SimpleModelTrait; protected $table = 'em_newsletter_receiver'; protected $origine; public static function build(?Newsletter $newsletter = null, $origine = null) { $model = new static(); $model->id_newsletter = $newsletter->id; $model->record_type = get_class($origine); $model->record_id = $origine->id; $model->save(); return $model; } public function getEmailAttribute() { return $this->getOrigine()->email; } // Relazione Eloquent public function getOrigine() { if (isset($this->origine)) { return $this->origine; } $this->origine = ($this->record_type)::find($this->record_id); return $this->origine; } public function newsletter() { return $this->belongsTo(Newsletter::class, 'id_newsletter'); } }