2014-11-07 11 views
5

Nel revisionable package è possibile ottenere il nome identificativo di un modello correlato definendo il metodo identifiableName() su un modello, impostando il campo da visualizzare al posto di id. Per esempio. 'nome' o 'titolo'.Ottenere il modello "identificabile()" da revisionabile

È possibile eseguire operazioni simili con modelli non correlati. Quindi dire che ho ottenuto tutte le revisioni per un determinato modello. Per esempio.

$revisions = Venturecraft\Revisionable\Revision::where('revisionable_type', 'post')->get(); 

Come posso ottenere l'identifiableName del post per il quale è stato fatto ogni revisione?

Posso già ottenere il post id con $revision->revisionable_id ma non riesco a trovare un modo per ottenere il nome del post senza qualcosa come Post::find($revision->revisionable_id)->name che è costoso per un ampio elenco di revisioni.

risposta

0

Per chiunque abbia ancora questo problema.

penso che si può essere in grado di fare qualcosa di simile:

$revision->revisionable->identifiableName(); 

funziona bene per me, basta essere sicuri di controllare che il post non è stato eliminato, altrimenti si cercherà di ottenere una proprietà da un non-oggetto.

esempio:

if($revision->revisionable){ 
    // Post exists 
    $revision->revisionable->identifiableName(); 
}else{ 
    // Post doesn't exist 
} 
Problemi correlati