例如在模型Post中,我有这样的关系:
public function voters()
{
return $this->morphMany(Voter::class, 'entity');
}
我可以获得从中获得选民的邮政实体的属性和字段吗?
答案 0 :(得分:0)
是的,您可以访问Post实体的属性
您也可以从中检索多态关系的所有者 通过访问执行方法的名称来获取多态模型 对morphTo的调用。在我们的例子中,这是可评论的方法 评论模型。因此,我们将以动态方式访问该方法 属性:
<?php
$comment = App\Comment::find(1);
$commentable = $comment->commentable;
评论模型上的可评论关系将返回a 发布或视频实例,具体取决于所拥有的模型类型 评价。
对于您的示例,您必须在Voter实体中添加一个方法,并将其称为votable
:
<?php
/**
* Get all of the owning commentable models.
*/
public function votable()
{
return $this->morphTo();
}
然后,当你找回一个选民,并希望获得&#34;所有者&#34; (在这种情况下是帖子),你会打电话:
<?php
$voter = App\Voter::find(1);
$votable = $voter->votable;
$votable
将是投票所有者的一个实例(你发布)。从那里,您可以像平常一样访问其属性。