从可修改版本获取模型"identifiableName()"

har*_*ryg 5 php laravel-4 revisionable

在可修订包中,可以通过在模型上定义identifiableName()方法来获取相关模型的可识别名称 ,将字段设置为显示而不是id.例如'姓名'或'标题'.

是否可以与不相关的模型做类似的事情.所以说我得到了某个型号的所有修改版.例如

$revisions = Venturecraft\Revisionable\Revision::where('revisionable_type', 'post')->get();
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得identifiableNamepost对每个修订提出?

我已经可以获得post id了$revision->revisionable_id但是我似乎无法找到一种获取帖子名称的方法,而没有像Post::find($revision->revisionable_id)->name大量修订列表那样昂贵的东西.

小智 0

对于仍然遇到此问题的任何人。

我想你也许可以做这样的事情:

$revision->revisionable->identifiableName();
Run Code Online (Sandbox Code Playgroud)

对我来说效果很好,只需确保检查帖子是否已被删除,否则您将尝试从非对象获取属性。

例如:

if($revision->revisionable){
   // Post exists
   $revision->revisionable->identifiableName();
}else{
   // Post doesn't exist
}
Run Code Online (Sandbox Code Playgroud)