从可修订版获取模型“identifiableName()”

Posted

技术标签:

【中文标题】从可修订版获取模型“identifiableName()”【英文标题】:Getting model "identifiableName()" from revisionable 【发布时间】:2015-01-04 13:00:21 【问题描述】:

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

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

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

如何获得每个修订版的post 中的identifiableName

我已经可以使用 $revision->revisionable_id 获取帖子 ID,但我似乎无法找到没有类似 Post::find($revision->revisionable_id)->name 之类的内容的方法来获取帖子名称,这对于大量修订列表来说是昂贵的。

【问题讨论】:

【参考方案1】:

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

我认为您可以执行以下操作:

$revision->revisionable->identifiableName();

对我来说很好,只要确保检查帖子没有被删除,否则您将尝试从非对象获取属性。

例如:

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

【讨论】:

以上是关于从可修订版获取模型“identifiableName()”的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从可解码模型传递或实现到 ViewController?

如何从可枚举转换为特定模型

从可选对象(字典数组)中获取值?

不使用循环从可迭代对象中获取值

是否可以从可执行模式中获取类型定义?

如何从可绘制文件夹中动态获取图像