变形为多 Laravel 关系

Morph To Many Laravel relationship

Question.php

public function votes()
{
    return $this->morphToMany('App\User' , 'votable');
}

User.php

public function voteQuestions()
{
    return $this->morphedByMany('App\Answer', 'votable');
}

这显示:

Call to undefined method Illuminate\Database\Eloquent\Relations\MorphToMany::exits()

并且 Laravel 告诉您:

Did you mean Illuminate\Database\Eloquent\Relations\MorphToMany::get()?

我认为您的 MorphToMany 关系有问题。 你需要这样的东西:

问题模型:

public function votes()
{
    return $this->morphToMany('App\Vote' , 'votable');
}

答案模型:

public function votes()
{
    return $this->morphToMany('App\Vote' , 'votable');
}

投票模型:

public function questions()
{
    return $this->morphedByMany('App\Question' , 'votable');
}

public function asnwers()
{
    return $this->morphedByMany('App\Answer' , 'votable');
}

但是如果你想检查关系是否存在,有has('relationName')方法。

exists() 方法仅适用于 Eloquent 个模型实例。