Bak*_*kly 3 php pivot-table laravel laravel-4
我试图获取课程中每个用户的出勤情况,其中用户和课程具有多对多关系,并且出勤表基于该关系。但我无法$user->pivot->attendance();直接调用,我必须调用枢轴对象本身,这样我就可以调用它的函数,正如您在答案中看到的那样
以下是我的数据库方案的示例
我需要跑
$users=$course->users;
foreach($users as $user)
{
$user->pivot->attendance(); //error in this line
}
Run Code Online (Sandbox Code Playgroud)
这一行给出了错误
调用未定义的方法 Illuminate\Database\Query\Builder::attendance()
用户
id
name
etc
Run Code Online (Sandbox Code Playgroud)
培训班
id
name
startDate
endDate
Run Code Online (Sandbox Code Playgroud)
课程用户
id
course_id
user_id
payment
regDate
status
Run Code Online (Sandbox Code Playgroud)
用户出席率
id
course_user_id
time
inOrOut
Run Code Online (Sandbox Code Playgroud)
这是 CourseUserPivot 类
class CourseUserPivot extends Eloquent {
protected $table ="course_user";
public function course()
{
return $this->belongsTo('Course');
}
public function user()
{
return $this->belongsTo('User');
}
public function attendance()
{
return $this->hasMany('Userattendance','course_user_id');
}
}
Run Code Online (Sandbox Code Playgroud)
PS:$user->pivot-> payment可以工作并显示属性,但我无法调用方法
您不能使用$user->pivot->attendance();,因为这会调用用户对象的出勤,而不是枢轴对象的出勤
您必须获取枢轴对象,然后像这样调用该函数
CourseUserPivot::find($user->pivot->id)->attendance();
Run Code Online (Sandbox Code Playgroud)
让用户知道您在使用 withPivot() 函数的地方将 id 包含在数组中
像
class Course{
...
...
public function users()
{
return $this->belongsToMany('Candidate')
->withPivot('id',
'summary',
'status',
'payment'
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6170 次 |
| 最近记录: |