в ревизионный пакет можно получить идентифицируемое имя связанной модели, определив identifiableName()
метод на модели, установка поля для отображения вместо идентификатора. Например. «имя» или «название».
Можно ли сделать подобное с несвязанной моделью. Скажем так, я получил все ревизии для определенной модели. Например.
$revisions = Venturecraft\Revisionable\Revision::where('revisionable_type', 'post')->get();
Как я могу получить identifiableName
из post
для чего каждая ревизия была сделана?
Я уже могу получить идентификатор сообщения с $revision->revisionable_id
но я не могу найти способ получить название поста без чего-то вроде Post::find($revision->revisionable_id)->name
что дорого для большого списка ревизий.
Для тех, кто все еще имеет эту проблему.
Я думаю, что вы можете сделать что-то вроде:
$revision->revisionable->identifiableName();
У меня работает нормально, просто убедитесь, что сообщение не было удалено, иначе вы будете пытаться получить свойство от необъекта.
например:
if($revision->revisionable){
// Post exists
$revision->revisionable->identifiableName();
}else{
// Post doesn't exist
}
Других решений пока нет …