belongsToMany(Row::class, 'revision_row_pivot'); } /** Proposal that lead to this revision */ public function appliedProposal() { return $this->hasOneThrough(Proposal::class, 'revision_proposal_pivot'); } /** Proposals that depend on this revision */ public function dependentProposals() { return $this->hasMany(Proposal::class); } /** Revision this orignates from */ public function parentRevision() { return $this->belongsTo(Revision::class, 'ancestor_id'); } /** Tables referencing this revision */ public function tables() { return $this->belongsToMany(Table::class, 'table_revision_pivot'); } }