在可修订包中,可以通过在模型上定义identifiableName()
方法,设置要显示的字段而不是id来获取相关模型的可识别名称。
是否可以对不相关的模型做类似的事情。所以说我得到了某个模型的所有修订。例如
$revisions = Venturecraft'Revisionable'Revision::where('revisionable_type', 'post')->get();
如何获取每次修订所针对的post
的identifiableName
?
我已经可以使用$revision->revisionable_id
获取帖子 ID,但我似乎找不到一种方法来获取帖子名称,而没有像 Post::find($revision->revisionable_id)->name
这样的东西对于大量修订来说很昂贵。
对于仍然有此问题的人。
我想你可以做这样的事情:
$revision->revisionable->identifiableName();
对我来说效果很好,只需确保检查帖子是否未被删除,否则您将尝试从非对象获取属性。
例如:
if($revision->revisionable){
// Post exists
$revision->revisionable->identifiableName();
}else{
// Post doesn't exist
}