laravel一对多关系列未找到

时间:2015-03-22 10:21:50

标签: php mysql laravel laravel-4 eloquent

我有以下型号:

class Question extends Eloquent 
{
   public  function quiz()
   {
      return $this->belongsTo('Quiz','id_quiz','id');
   }
   public  function answer()
   {
      return $this->hasMany('Answer');
   }
}

class Answer extends Eloquent
{
   public function question()
   {
      return $this->belongsTo('Question','id_question','id');
   }
}

在我使用的控制器中:

$questions =  Question::with('answer')->whereHas(
     'quiz',  function($q) use($id) {$q->where('id', $id);
})->get();

我收到以下错误:

  

找不到列:1054未知列'answer.question_id'在'where   子句''(SQL:select * from answers where answersquestion_id in   (10,11,12,13)))

1 个答案:

答案 0 :(得分:6)

您应该以这种方式在answer模型中定义Question关系:

public  function answer(){
    return $this->hasMany('Answer','id_question','id');
}

因为正如您所说,您有列id_question而不是question_id在这种情况下默认值是什么。