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 –