laravel 未找到一对多关系列
laravel one to many relationship column not found
我有以下型号:
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();
我收到以下错误:
Column not found: 1054 Unknown column 'answers.question_id' in 'where
clause' (SQL: select * from answers
where answers
.question_id
in
(10, 11, 12, 13)))
您应该以这种方式在 Question
模型中定义 answer
关系:
public function answer(){
return $this->hasMany('Answer','id_question','id');
}
因为正如您所说,您有列 id_question
而不是 question_id
在这种情况下什么是默认值。
我有以下型号:
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();
我收到以下错误:
Column not found: 1054 Unknown column 'answers.question_id' in 'where clause' (SQL: select * from
answers
whereanswers
.question_id
in (10, 11, 12, 13)))
您应该以这种方式在 Question
模型中定义 answer
关系:
public function answer(){
return $this->hasMany('Answer','id_question','id');
}
因为正如您所说,您有列 id_question
而不是 question_id
在这种情况下什么是默认值。