Laravel的数据透视表+数据透视表

克里斯蒂安波兰

laravel数据透视表和数据透视表一般是什么?这是怎么回事?

最近,我对数据透视表进行了研究。我以为我知道他们以及他们是什么,但是那时我可能错了。

我一直认为透视表只是两个表之间的表(多对多关系)

但是后来我开始了这项研究,碰巧不是那样,而是类似普通表的不同架构,其中行是列。变了

但是后来Laravel也有了数据透视表。开始阅读文档并进行研究。也许我读错了,但看起来像是laravel中的数据透视表-两个表之间的表,多对多。

正在其他地方搜索,但找不到有关它的适当信息。

知道了 Laravel的枢轴对许多人而言!

然后我开始进行项目,今天我要说的是,由于枢轴将这个中间表驱动到一个问题,所以我遇到了问题……几分钟和几个小时……无法解决。

模型原为 class Room_Student extends Pivot

修复了什么?只需将其更改为即可class Room_Student extends Model

我认为我不再了解数据透视表,它们是不同类型的数据透视表吗?Laravel的枢纽不同吗?

所以我的问题是,数据透视表到底是什么?+ Laravel的数据透视表。他们不同吗?这是什么意思

请帮助我理解这一点。

哈莎·贾亚曼纳(Harsha Jayamanna)

学习时,只关注Laravel(或雄辩)的数据透视表概念。在学习时,我并不关心数据透视表的一般含义。我只关注文档中的事实(https://laravel.com/docs/5.5/eloquent-relationships#many-to-many

多对多关系需要一个附加表。我们也可以在此表中插入其他有用的数据。并可以在系统中用作模型。

示例:用户和角色多对多关系= User_roles

在此处输入图片说明

由于有数据透视表,因此您可以将中间表数据作为模型来检索(就像系统中的其他模型一样)。

例:

//get user by id
$user = App\User::find(1);

//get roles of this user
foreach ($user->roles as $role) {

  //pivot attribute returns a model which represent user_role table
  echo $role->pivot->created_at;

}

注意:您可以通过扩展支点来创建一个类。但是您必须实现正确的关系才能使其正常工作。您的代码看起来应与以下代码相似。

class Student extends Model
{
    /**
     * The users that belong to the role.
     */
    public function Rooms()
    {
        return $this->belongsToMany('App\Room')->using('App\Room_Student');
    }
}

class Room extends Model
{
    /**
     * The users that belong to the role.
     */
    public function Students()
    {
        return $this->belongsToMany('App\Student')->using('App\Room_Student');
    }
}

class Room_Student extends Pivot
{
    //
}

我希望这有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章