雄弁な方法の変数と同等にアクセスすることができません:、私は自分のアプリケーションでは、次の雄弁方法持って
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を表示します。私はすべて混乱しています。
どこが間違っていますか?
を私ではないでしょうか?私はクラス内ですでに票()の関係を定義しています。これはlaravelのドキュメントでも言及されています。 **関係が定義されると、commentsプロパティにアクセスしてコメントのコレクションにアクセスできます。 Eloquentは「動的プロパティ」を提供しているので、モデル上でプロパティとして定義されているかのようにリレーションシップメソッドにアクセスできます** –
名前が 'votes'で属性がなく、 'getVotesAttribute()'は、モデルがプロパティをリレーションとして解決する前に返ります。 getAttribute()は、アクセスしている属性がモデル上で直接アクセスできない場合に呼び出されます。あなたはそれをここで見ることができますhttps://github.com/laravel/framework/blob/5.4/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php#L295 –