假设我有一个Conversation
像这样的模型:
class Conversation extends Model
{
public function questions (){
return $this->hasMany('App\Question','conversation_id','conversation_id');
}
public function category ()
{
return $this->belongsTo('App\Category', 'cat', 'cat_id');
}
}
And a Question
像这样的模型:
class Question extends Model
{
public function conversation ()
{
return $this->belongsTo('App\Conversation', 'conversation_id', 'conversation_id');
}
}
正如你所看到的,有一个hasMany
这两者之间的关系。
另一方面有一个Category
就像下面有关系的Conversation
model :
class Category extends Node
{
public function conversations (){
return $this->hasMany('App\Conversation','cat','cat_id');
}
}
现在我想附加一个名为question_count
to Category
计算每个类别对话的所有问题。为此我添加了这个:
public function getQuestionsCountAttribute ()
{
return $this->conversations->questions->count();
}
但是当获取类别时我收到此错误:
ErrorException in Category.php line 59:
Undefined property: Illuminate\Database\Eloquent\Collection::$questions
我做了什么?如何计算具有最小服务器过载的关系的关系?
我正在使用 Laravel 5.3.4。