The*_*ren 6 php eager-loading laravel-4
我在急切的装载上遇到了麻烦.假设我有会员模型,TrainingCategory,TrainingCategoryResult和Registration
会员型号:
public function registration() {
return $this->hasMany('Registration', 'member_id');
}
public function trainingResults(){
return $this->hasMany('trainingResult', 'member_id');
}
public function trainingCategoryResults() {
return $this->hasMany('TrainingCategoryResult', 'member_id');
}
Run Code Online (Sandbox Code Playgroud)
TrainingCategory模型:
public function trainings() {
return $this->hasMany('Training', 'id');
}
public function trainingCategoryResults() {
return $this->hasMany('trainingCategoryResult', 'category_id');
}
Run Code Online (Sandbox Code Playgroud)
TraningCategoryResult模型:
public function category() {
return $this->belongsTo('TrainingCategory', 'id');
}
public function member() {
return $this->belongsTo('Member', 'id');
}
Run Code Online (Sandbox Code Playgroud)
注册模式:
public function course() {
return $this->belongsTo('Course', 'course_id');
}
public function member() {
return $this->belongsTo('Member', 'id');
}
Run Code Online (Sandbox Code Playgroud)
我试图加载所有注册信息及其相关信息,包括TraningCategoryResult信息,但我不知道如何获得需要两个外键(category_id和member_id)的TraningCategoryResult,有什么方法可以做到这一点?
这是我的代码atm:
$members= Member::where(function($query) use ($id, $site) {
$query
->where('id', '=', $id)
->where('site', '=', $site);
});
$members= $members
->with('registration.course',
'registration.course.traningCategories',
->get(['member.id']);
Run Code Online (Sandbox Code Playgroud)
谢谢.
小智 0
这是行不通的 Member::with('categoryResult')->with('registration')->get()
您可以在会员模型中建立新的关系
public function categoryResult()
{
return $this->belongsTo('Category')->with('Registration');
}
Run Code Online (Sandbox Code Playgroud)
//然后调用
成员::with('categoryResult')->get();
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |