0

我要做的是添加与我的数据透视表的关系。我有一个独特的场景,我的数据透视表需要它自己在角色表上的 has_one 关系。有人看到专门为数据透视表创建 Eloquent 模型有问题吗?另外,如果我要创建这个模型,有没有什么办法可以让下面的模型返回?

$user = User::where('id', '=', 1);
$pivot = $user->hasmanyexample()->pivot();

我特别希望能够执行以下操作:

$user = User::where('id', '=', 1);
$pivot = $user->example()->pivot();

// class Example_User 
// public function role() { return $this->has_one('Role', 'role_id'); }
$role = $pivot->role(); 
4

1 回答 1

4

首先你必须制作一个 Pivot 模型,在我的例子中,我有 3 个模型

  • 版本->has_many_and_belongs_to('格式);
  • 格式->has_many_and_belongs_to('Edition);

生成的数据透视表将被称为 edition_format,当我制作模型时,您首先必须创建一个目录 Edition,并在该文件夹中创建一个名为 format.php 的文件,这样您将拥有以下内容:

-application/models/Edition/format.php

那么你必须更改表名,因为 laravel 查找复数 (edition_formats) 并且关系需要 edition_format,所以你必须添加以下内容:

class Edition_format extends Eloquent

{

public static $table = "edition_format";


/* whatever you want */

}

然后你可以这样称呼它:Edition_format::find(1);

于 2013-03-13T14:47:36.240 回答