从可修订获取模型“可识别名称()”


Getting model "identifiableName()" from revisionable

在可修订包中,可以通过在模型上定义identifiableName()方法,设置要显示的字段而不是id来获取相关模型的可识别名称。

是否可以对不相关的模型做类似的事情。所以说我得到了某个模型的所有修订。例如

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

如何获取每次修订所针对的postidentifiableName

我已经可以使用$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
}