0
的变量相当于我在我的应用程序如下雄辩的方法:无法访问雄辩方法
public function votes() {
return $this->morphMany(Vote::class, 'votable');
}
,当我尝试访问变量票(如laravel具有动态特性)像$userVote = $this->votes->where('user_id', $user->id)->first();
,我得到以下错误: "Call to a member function where() on integer"
当我使用dd($this->votes)
它显示2.我都困惑。
我哪里错了?
我应该能够访问属性'''votes''',我不应该?我已经在类中定义了关系票()。这也在laravel文档中提到。 **定义关系后,我们可以通过访问评论属性来访问评论集。请记住,因为Eloquent提供了“动态属性”,所以我们可以访问关系方法,就好像它们被定义为模型中的属性一样。** –
如果您没有名为'votes'的属性并且没有获取命名mutator, 'getVotesAttribute()',因为这些将在模型将该属性解析为关系之前返回。当您访问的属性不能在模型上直接访问时调用'getAttribute()'。你可以在这里看到它https://github.com/laravel/framework/blob/5.4/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php#L295 –