Laravel 4 获取多个集合
Laravel 4 getting multiple collections
我正在我的控制器中编写一个函数来 return 一个 json 响应。这是我的功能:
public function play($id){
$quiz = Quiz::find($id);
$questions = $quiz->question()->get();
return Response::json(array(
'quiz' => $quiz,
'questions' => $questions));
}
这很有效,但是,我也有与问题相关的答案。
在我的 Question
模型中,我有这个 answer()
函数:
public function answer(){
return $this->hasMany('Answer');
}
在我的 Answer
模型中,我当然有我的 question()
功能:
public function question(){
return $this->belongsTo('Question');
}
如何获得答案?我不能用;
$answers = $question->answer()->get;
而且我不能使用
//get the questions using query, but this returns nothing
$questions = Question::where('quiz_id', '=', $id);
$answers = $questions->answer()->get;
我希望我足够清楚,我尝试搜索但找不到任何东西,有人可以帮忙 :)?
您可以使用 eager loading 获得答案 嵌套 问题内的结果:
$questions = $quiz->question()->with('answer')->get();
如果您只想获得 一个 问题的答案,请执行以下操作:
$question = Question::find(1);
$answers = $question->answer()->get();
或者简单地使用 动态 属性:
$answers = $question->answer;
旁注:我建议你用复数命名 hasMany
关系。 answers
而不是 answer
。这在语义上更有意义,并清楚地告诉您结果是得到一个集合还是单个模型。
我正在我的控制器中编写一个函数来 return 一个 json 响应。这是我的功能:
public function play($id){
$quiz = Quiz::find($id);
$questions = $quiz->question()->get();
return Response::json(array(
'quiz' => $quiz,
'questions' => $questions));
}
这很有效,但是,我也有与问题相关的答案。
在我的 Question
模型中,我有这个 answer()
函数:
public function answer(){
return $this->hasMany('Answer');
}
在我的 Answer
模型中,我当然有我的 question()
功能:
public function question(){
return $this->belongsTo('Question');
}
如何获得答案?我不能用;
$answers = $question->answer()->get;
而且我不能使用
//get the questions using query, but this returns nothing
$questions = Question::where('quiz_id', '=', $id);
$answers = $questions->answer()->get;
我希望我足够清楚,我尝试搜索但找不到任何东西,有人可以帮忙 :)?
您可以使用 eager loading 获得答案 嵌套 问题内的结果:
$questions = $quiz->question()->with('answer')->get();
如果您只想获得 一个 问题的答案,请执行以下操作:
$question = Question::find(1);
$answers = $question->answer()->get();
或者简单地使用 动态 属性:
$answers = $question->answer;
旁注:我建议你用复数命名 hasMany
关系。 answers
而不是 answer
。这在语义上更有意义,并清楚地告诉您结果是得到一个集合还是单个模型。