如何在laravel中将值与联接查询一起存储到表中?

如何在laravel中将值与联接查询一起存储到表中?,laravel,join,laravel-5.2,inner-join,Laravel,Join,Laravel 5.2,Inner Join,我有三张桌子:-> -StudentPK用户ID -教师PK教师ID,FK用户ID参考。。。 -RatingPK rateid,FK userid ref…,FK teacherid ref。。。。 我想通过与其他表连接来插入评级表。如何在Laravel 5.2中实现这一点?请帮帮我,伙计们 这可以通过多态关系在大范围内完成 为了简化,下面是一个示例db结构: student id - integer user_id - integer teacher id - int

我有三张桌子:-> -StudentPK用户ID -教师PK教师ID,FK用户ID参考。。。 -RatingPK rateid,FK userid ref…,FK teacherid ref。。。。
我想通过与其他表连接来插入评级表。如何在Laravel 5.2中实现这一点?请帮帮我,伙计们

这可以通过多态关系在大范围内完成

为了简化,下面是一个示例db结构:

student
    id - integer
    user_id - integer

teacher
    id - integer
    user_id - integer

ratings
    id - integer
    value - integer
    rateable_id - integer
    rateable_type - string
应课差饷租值id对应于教师或学生的id 应课差饷类型是应课差饷模型的类名字符串。这是为您自动添加的,如下所述

您的模型应如下所示:

Rating.php

Teacher.php

Student.php

现在,这里有一个关于如何使用这个的小例子

$student = Student::find(1);

$rating = new Rating();
$rating->value = 10;

$student->rating()->save($rating);
首先你找到一个学生。然后创建一个新的评级并添加一个值


执行$student->rating->保存$rating时;将为您填写rateable_id和rateable_类型,并通过关系为您的Student.php模型填写正确的值。Laravel很简单。

谢谢你的回复,伙计!这正是我需要的。再次感谢-我也很想做到这一点。但是对于示例数据库结构,我有点困惑。你能解释一下吗!谢谢我也读过关于多态关系的书,我知道我们可以在这种情况下使用它:想象你的应用程序的用户可以同时喜欢帖子和评论。我需要的是,只有学生可以给老师评分,评分值将存储在与相应的老师和学生同步的评分表上
class Teacher extends Model
{
    public function rating()
    {
        return $this->morphOne(Rating::class, 'rateable');
    }
}
class Student extends Model
{
    public function rating()
    {
        return $this->morphOne(Rating::class, 'rateable');
    }
}
$student = Student::find(1);

$rating = new Rating();
$rating->value = 10;

$student->rating()->save($rating);