如何在laravel枢轴模型上调用函数

问题描述 投票:2回答:2

我正在尝试使课程与用户和课程之间具有多对多关系,并且出勤率表基于该关系来获得每位用户的出勤率。但是我无法直接调用$user->pivot->attendance();,我不得不自行调用数据透视对象,因此我可以对其调用函数,如您在答案中所见]

以下是我的数据库方案的示例

我需要跑步

$users=$course->users;
foreach($users as $user)
{
    $user->pivot->attendance(); //error in this line
}

此行给与错误

调用未定义的方法照亮\数据库\查询\生成器:: attendance()

用户

id
name
etc

课程

id
name
startDate
endDate

course_user

id
course_id
user_id
payment
regDate
status

用户出席

id
course_user_id
time
inOrOut

这是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');
    }
}

P.S:$ user-> pivot->付款有效并显示属性,但我无法调用方法

我正在尝试使课程与用户和课程之间具有多对多关系,并且出勤率表基于该关系来获得每位用户的出勤率。但是我不能叫$ ...

php laravel laravel-4 pivot-table
2个回答
2
投票

您不能使用$user->pivot->attendance();,因为这会在用户对象而非枢纽对象上呼叫出勤


0
投票

[我试图完成同样的事情,直到将我的自定义数据透视模型的'id'列包含在withPivot()方法中,我一直无法正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.